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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android库AAR中包含第三方JAR,而无需合并代码相关的知识,希望对你有一定的参考价值。

我有一个新的要求,将JAR文件myspecial.jar包含到我正在构建的android库中。当我使用gradle构建AAR时,生成的bundle将myspecial.jar中的类和类都放入一个名为classes.jar的文件中。我想让他们分开。

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

此外,AAR文件可能包含以下一个或多个可选条目:

/资产/

/礼拜四/那么.jar

/教你/阿比_那么/那么.so

/pro guard.txt

/临潼.jar

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

我偶然发现:https://github.com/adwiv/android-fat-aar但它似乎对我不起作用。

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

答案

我想如果你禁用proguard,默认它们是分开的。将minifyEnabled true更改为minifyEnabled false可以禁用该程序。

另一答案

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

以上是关于如何在Android库AAR中包含第三方JAR,而无需合并代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android主项目中包含库项目中使用的aar文件

如何发布带有远程依赖项 (gradle) 的 Android 库 (aar)?

android中怎么调用第三方的so动态库啊~在线等...

如何防止 ProGuard 在输出 jar 中包含引用的库

在 wildfly jar 中包含第三方库(keycloak SPI)

Maven - 在 jar 中包含依赖库而不解包依赖项?