【问题标题】:Update module created from local aar从本地 aar 创建的更新模块
【发布时间】:2015-03-19 00:33:27
【问题描述】:

这是我的设置:我有一个在导出时创建 aar 的 android 库,并且我有一个使用该库作为模块的 android 应用程序(这是导入本地 aar 文件的唯一方法)。

要将 aar 文件作为模块导入我的 android 应用程序,我单击 File -> New Module... -> Import .JAR or .AAR Package 并选择导出的 aar 文件。之后,我只需要在我的 gradle 文件中添加一个 compile project 行就可以使用我的库了。

我经常更新我的库,因为我目前正在开发它并且我想经常测试它。问题是我不知道如何更新我的android应用项目中的模块......

我现在要做的是在我的 android 库项目中发出 gradlew assembleRelease 以创建新的 aar 文件,然后在我的 android 应用程序项目中删除 Module Settings(或 Project Structure)窗口中的模块,我删除了项目根目录下的模块文件夹,然后再次导入。每次我想测试我的库时,整个操作大约需要 3 分钟,我对此感到厌倦。你知道是否有更快的方法来更新从 aar 文件创建的 android 模块?

【问题讨论】:

  • 我看不出这有什么帮助,因为该项目没有保留对用于创建模块的 aar 文件的引用。
  • 如果它正在将 .aar 复制到您的项目中,您可以将其替换为新版本,并在必要时进行干净的构建。我不确定构建系统是否会自动检测 .aar 的更改版本;如果没有,您将不得不这样做干净。
  • 它正在提取aar文件(甚至建议你删除源文件),所以我猜它不会检测到源文件被编辑。无论如何,我找到了一种使用本地 aar 文件的更简洁的方法。我正在发布答案。

标签: android-studio aar


【解决方案1】:

我认为将 aar 文件作为模块导入是包含本地 aar 文件的唯一解决方案,但似乎可以通过模拟具有平面目录的存储库来轻松完成。

在您的项目 gradle 文件中的 allprojects.repositories 标记中,添加以下内容:

flatDir {
    dirs 'libs'
}

在您的应用模块中,确保您有一个 libs 文件夹,其中包含 aar 文件。然后在你的应用模块 gradle 文件的dependencies 标签中添加compile 行。

dependencies {
    compile 'package:name:version@aar'
}

现在,当您更新 libs 目录中的 aar 文件时,您的应用将使用更新后的库版本。

注意:

  • compile 'package:name:version@aar'中,name是物理文件名 的图书馆。例如lib-debuglib-release 等。
  • versionpackage可以在AndroidManifest.xml里面找到 .aar 文件。 (How to open .aar file?)

【讨论】:

  • 注意:在compile 'package:name:version@aar' name - 库的物理文件名ex. lib-debugversionpackage 可以在 AndroidManifest.xml 内的 .aar 文件中找到。
  • 嘿,只是为了确保我理解你。我在我已经导入的库中创建了一个libs 文件夹?即:i.imgur.com/VKeOK7H.png 还是在我的库中创建 libs 文件夹以用于导出?
  • @Suhaib 我不记得您是否必须在您的应用程序文件夹或同一级别创建您的 libs 文件夹,但绝对不是在您的库中。
  • 悬停时我无法在弹出窗口中看到文档。有什么想法吗?
猜你喜欢
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
  • 2022-01-23
  • 2016-09-03
  • 2020-12-02
相关资源
最近更新 更多