如何更新本地aar包源

时间:2017-11-29 14:54:40

标签: android android-studio aar

我创建了两个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文件后点击使用Gradle文件同步项目按钮。

6 个答案:

答案 0 :(得分:38)

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

唯一对我有用的是:

  1. 在gradle中注释掉实施文件(' ../ libs / yourlib.aar')
  2. 同步gradle
  3. 更新libs文件夹中的yourlib.aar
  4. 取消注释gradle中的实施文件(' ../ libs / yourlib.aar')
  5. 再次同步
  6. 构建项目
  7. 现在,yourlib.aar中的更改应该可以在您的项目中使用。如果您将此库包含在多个模块中,我猜您必须为每个模块执行此操作。不理想,但我在这个问题上花了至少5个小时,而这些步骤是我看似强迫改变的唯一方法。我猜测从gradle文件中删除库然后同步将强制它在再次添加时获取新库。

答案 1 :(得分:12)

我遇到了同样的问题,并通过以下步骤很快解决了该问题:

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

这是作为项目中包含的AAR(使用File-> New-> New Module ...-> Import .JAR / .AAR包时的方式)。

答案 2 :(得分:4)

现在您通过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有一个相当完整的支持依赖类型列表。

答案 3 :(得分:0)

除了评论/取消评论和重新同步Gradle项目和设置外, 我必须删除整个构建缓存目录。

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

答案 4 :(得分:0)

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

答案 5 :(得分:-1)

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

我知道这对我有用。