如何更新本地aar包源

问题描述 投票:23回答:6

我创建了两个Android Studio应用程序。其中一个是aar图书馆。我在第二个应用程序中使用了这个aar库。我使用File-> New-> New Module-> Import AAR / JAR Packages选项添加了aar库。之后,我可以看到我的aar库的反编译源。当我更新aar库时,我将新的aar文件复制并粘贴到我的应用程序项目文件夹中。但这次Android Studio会显示较旧的反编译源。但是成功编译新源代码。如何在Android Studio中更新反编译源?当我导入aar文件implementation project(':app-debug')行添加了我的build.gradle文件。

我使用的是Android Studio 3.0.1

我的解决方案

更新aar / jar文件后,我可以找到更新本地源的唯一方法是单击Sync Project with Gradle Files按钮。

android android-studio aar
6个回答
41
投票

我遇到了同样的问题,在我的项目中尝试了各种形式的包括我的本地aar,尝试了每种重建方法,使缓存无效等,但我仍然遇到更新文件后我的本地aar中的更改无法使用的问题在libs文件夹中。

唯一对我有用的是:

  1. 在gradle中注释掉实现文件('../ libs / yourlib.aar')
  2. 同步gradle
  3. 更新libs文件夹中的yourlib.aar
  4. 取消注释gradle中的实现文件('../ libs / yourlib.aar')行
  5. 再次同步
  6. 建立项目

现在,yourlib.aar中的更改应该在您的项目中可用。如果您将此库包含在多个模块中,我猜您必须为每个模块执行此操作。不理想,但我在这个问题上花了至少5个小时,而这些步骤是我看似强迫改变的唯一方法。我猜测从gradle文件中删除库然后同步会强制它在再次添加时获取新库。


13
投票

我遇到了同样的问题并且很快解决了以下问题:

  • 在项目/.idea/libraries/文件夹中查找Gradle__artifacts_ [subproject] .xml
  • 删除此文件
  • 在Android Studio中,转到文件 - >使用Gradle文件同步项目

这是作为项目包含的AAR(当您使用File-> New-> New Module ...-> Import .JAR / .AAR Package时,它是如何包含的)。


5
投票

现在你通过project表示法包括AAR。由于AAR实际上只是一个文件,因此它应该包含在files表示法中。

假设文件夹结构如下:

screenshot of the folder directory of a new Android Studio 3 project

您可以在app/build.gradle的依赖项块中包含以下任何行的文件:

  // include just my_library
  implementation files('libs/my_library.aar')

  // include just other_library
  implementation files("$rootDir/common/libs/other_library.aar")

  // include both libraries
  implementation files('libs/my_library.aar', "$rootDir/common/libs/other_library.aar")

顺便说一下,在https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.dsl.DependencyHandler.html上有一个相当完整的支持依赖类型列表。


0
投票

除了评论/取消评论和重新同步Gradle项目和设置之外,我还必须删除整个build-cache目录。

在Mac上:〜/ .android / build-cache / Windows:不确定此目录位置的位置。


0
投票

通过Windows资源管理器替换.arr文件后。唯一对我有用的是File - > Invalidate caches / Restrt


-1
投票

您是否尝试首先在Android Studio上关闭反编译文件的选项卡,更新AAR项目上的versionName,重建AAR,传输,然后看到它更新了?

我知道它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.