嵌套库aar文件行为

时间:2019-01-23 09:31:25

标签: java android aar

在将一个库的aar文件(我们将其称为library_2)导入另一个库(我们将其称为library_1)时遇到了问题。此外,我们只需要在应用程序项目中导入library_1.aar文件,并使library_2方法在项目级别可用。文件夹结构和相应的.gradle文件是什么?

下图中的问题描述: enter image description here

2 个答案:

答案 0 :(得分:0)

对于您的 library_1 ,您需要使用api而不是implementation。首先,将以下代码添加到您的library_1项目build.gradle中:

allprojects {
   repositories {
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

然后在您的library_1模块build.gradle中,将以下代码添加到您的依赖项块中(假设您已将library_2 aar添加到library_1 libs文件夹中):

dependencies {
  api(name:'library_2', ext:'aar')
}

现在,当您在应用模块中使用library_1 aar和以下依赖项块时,就可以访问library_2:

dependencies {
  api(name:'library_1', ext:'aar')
}

有关扁平耳的更多详细信息,请阅读How to manually include external aar package using new Gradle Android Build System

有关编译,实现和api之间差异的更多详细信息,请阅读Gradle Implementation vs API configuration

答案 1 :(得分:0)

我已经解决了您面临的上述问题。请看下面的代码,看看它是否对您有用。

在您的app.gradle文件中,添加以下内容:

implementation ('package.name.of.aar:modulethree-debug@aar') {
   transitive=true
}

注意:modulethree-debug@aar是您要在其他模块中访问的aar文件。