Android Gradle 依赖

Android Gradle Dependency

我正在为我们的一个项目使用本地 aar 文件,并且有以下查询。 我有 2 个库和 1 个应用程序。

2 个库是: 1. 测试库2 2. 测试库1

1 申请是: 1. 测试

我使用为 TestLib2 创建的 aar 文件,并在 TestLib1 中使用 flatDir 引用它。我可以毫无问题地访问 TestLib2 中的函数。

现在我使用为 TestLib1 创建的 aar 文件,并在测试中使用 flatDir 引用它。我只能访问 TestLib1 中存在的函数。为了访问 TestLib2,我必须将它作为另一个库添加到测试应用程序中。

所以依赖如下:

Test
|_ TestLib1
   |_ TestLib2

对于 aar 文件,上述是否可行?

我还在 settings.gradle TestLib1 文件中提到要包含

include ':app', ':testlib2-debug'

其中app指的是TestLib1

build.gradle 文件实际上没有任何风格,我什至没有任何限制将它们用作 jar,因为它只包含 java 段代码。

非常感谢任何帮助。

BR, 杰希尔

更新 1: 我也在下面的 TestLib1 和 Test 的 build.gradle 中尝试过。 仍然没有运气。

dependencies {
    compile (name:'testlib2-debug', ext:'aar') {
        transitive = true;
    }
}

对于测试应用

compile (name:'testlib1-debug', ext:'aar')  {
        transitive = true;
}

所以我终于找到了解决办法。 它适用于上面提到的 2 级依赖。

为测试库 2 创建一个 jar 文件。

task clearJar(type: Delete) {
    delete 'build/outputs/loggingSDK.jar'
}

task makeJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('build/outputs/')
    include('classes.jar')
    rename ('classes.jar', 'testlib2.jar')
}

makeJar.dependsOn(clearJar, build)

通过使用命令

gradle makeJar

你会得到一个 testlib2.jar

将此复制到您的 TestLib1

使用命令

gradle assemble

这将创建调试和发布版本

获取调试版本并将其复制到测试中,您将能够调用 TestLib1 的函数,后者又调用 TestLib2 的函数

希望这可以帮助寻找此类解决方案的人