Android - 创建uber / fat aar,执行错误

时间:2018-04-17 15:20:30

标签: android android-gradle build.gradle

我想创造一个超级/脂肪aar。我有一个库(libA)依赖于另一个库(libB),我想将它们捆绑在一起,最好使用gradle。然后将在app中使用这种超级/脂肪。

最初我查看了两个类似的gradle插件,shadowJar和fataar,但由于版本不兼容,他们是不行的。为此,我在gradle文件中创建了自定义配置并添加了依赖项:

configurations { privateLibs }

privateLibs ('libB.1.0.0@aar') {
    transitive=true
}
compile configurations.privateLibs.asFileTree

然后我可以运行gradle install来生成libA-1.0.0.aar。

当我检查libA.aar并使用

查看它的内容时
jar tvf libA-1.0.0.aar

我可以在libs文件夹下看到列出的LibB:

BST 2018 libs/libB-1.0.0.aar

我现在创建了一个应用程序,将我的新库libA-1.0.0.aar作为本地依赖项。稍后它将通过外部存储库解决。

implementation files('libs/libA-1.0.0.@aar')

该应用程序已编译并似乎已准备好运行。但是,当我尝试在Android模拟器中运行应用程序时,它会抛出一条错误消息:

error: cannot access ExampleClass class file for com.sample.ExampleClass

ExampleClass是在libB中创建的类,在libA中实现。尽管libA在libA aar的libs文件夹中可用,但似乎libA不了解libB。这里的构建步骤是错误的吗?这应该以另一种方式完成吗?提前谢谢!

0 个答案:

没有答案