如何在Android库AAR中包含第三方JAR,无需合并代码

问题描述:

我有一个新要求,即将JAR文件myspecial.jar包含到我正在构建的Android库中。当我使用gradle构建AAR时,生成的包将我的类和类从myspecial.jar合并到一个名为classes.jar的文件中。我想让他们分开。如何在Android库AAR中包含第三方JAR,无需合并代码

根据Android的网站https://developer.android.com/studio/projects/android-library.html,有可能做到这一点。

此外,一个AAR文件可以包括下列可选条目中的一个或多个:

/资产/

/libs/name.jar

/JNI/abi_name /名称。所以

/proguard.txt

/lint.jar

我已经尝试了所有我知道的有限gradle-fu。我无法弄清楚。

我碰到过这个:https://github.com/adwiv/android-fat-aar但它似乎并不适合我。

TL; DR:需要gradle支持将第三方jar作为它自己的文件绑定到aar里的libs目录中,而不是与我自己的代码一起编译到classes.jar中。

+0

您是否找到解决方案?我正在寻找相同的。 –

+0

不幸的是,没有。我仍在四处寻找解决方案。 –

解决方案是迁移到Gradle插件3.0 - https://developer.android.com/studio/preview/features/new-android-plugin-migration.html。它提供了apiimplementation属性,消除了jar和aars中的重复类。

我想如果你禁用了proguard,默认情况下它们是分开的。 更改minifyEnabled trueminifyEnabled false可能会禁用该proguard。