安卓Gradle依赖

3
我正在为我们的一个项目使用本地aar文件,并有以下查询。 我有两个库和一个应用程序。
2个库是: 1. TestLib2 2. TestLib1
1个应用程序是: 1. Test
我使用为TestLib2创建的aar文件,并在TestLib1中使用flatDir引用它。我可以无问题地访问TestLib2中存在的函数。
现在我使用为TestLib1创建的aar文件,并在Test中使用flatDir引用它。我只能访问TestLib1中存在的函数。要访问TestLib2,我必须将其添加到Test应用程序作为另一个库。
因此,依赖关系如下:
Test
|_ TestLib1
   |_ TestLib2

以上内容在aar文件中是否可行?

另外,在TestLib1的settings.gradle文件中,我提到要包含:

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

这里的“app”指的是TestLib1。

build.gradle文件并没有任何特定的flavors,我甚至没有任何限制使用它们作为jar文件,因为它只包含Java代码。

非常感谢任何关于此的帮助。

敬礼, Jayshil

更新1: 我在TestLib1和Test的build.gradle中尝试了下面的内容,但仍然没有成功。

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

对于测试应用程序

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

3

我终于找到了解决办法。

对于上述提到的两级依赖关系,它可行。

为Test Lib 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

这将创建调试和发布版本。

取出调试版本并将其复制到Test中,您将能够调用TestLib1的函数,从而调用TestLib2的函数。

希望这可以帮助寻找这样解决方案的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接