使用 aar 库时出现依赖错误

Dependency error when using aar library

我在 libs 文件夹中有一个包含 .aar 文件的模块。我使用了此处发布的解决方案 [1]: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/ 将 .aar 文件添加为依赖项并能够正确编译模块。

现在我想在我的项目中使用这个模块作为对主模块的依赖并编译。然而,当我尝试编译时,我确实看到一个错误,指出 gradle 无法找到特定的 .aar 文件 .为什么我的主模块找不到子模块的 libs 文件夹中的文件。想知道是否有人遇到过这个问题。

我的项目结构是这样的

--mainmodule
  --build.gradle (submodule as a dependency)
--submodule
   --libs
      -- abc.aar

这是 gradle 抛出的错误:When unzipping library ':abc:, either group, name or version is empty

如果我理解你的问题是正确的,并且你已经按照你分享的 link 中描述的步骤进行操作,那么将它添加到你的 主模块的 build.gradle应该做的工作:

flatDir {
    dirs "../submodule/libs"
}

您遇到的问题基本上与您在 submodule 中修复的问题相同,因为 mainmodule 正在努力解决 submodule 的传递依赖项 (abc.aar)。

推荐方式:

虽然上面的答案应该可以解决您的问题,但 Android Studio 支持更好的方法来执行此操作。通过 Studio v1.3+ 中的 File>New>New Module>Import .JAR/.AAR Package 选项导入本地 aar 文件。 然后你可以让你的子模块依赖于 aar-module 如下:

dependencies {
    compile project(':aar-module')
}