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

时间:2016-11-24 08:29:02

标签: gradle android-gradle build.gradle android-library aar

我有一个新要求,要将JAR文件@using (Ajax.BeginForm("Create", "Comments", new AjaxOptions { ... 包含到我正在构建的Android库中。当我使用gradle构建AAR时,生成的bundle将myspecial.jar中的类和类都包含在一个名为myspecial.jar的文件中。我想让他们分开。

根据Android的网站https://developer.android.com/studio/projects/android-library.html,可以这样做。

  

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

     

/资产/

     

/libs/name.jar

     

/jni/abi_name/name.so

     

/proguard.txt

     

/lint.jar

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

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

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

2 个答案:

答案 0 :(得分:0)

我认为如果禁用proguard,默认情况下它们是分开的。 将minifyEnabled true更改为minifyEnabled false可能会禁用该程序。

答案 1 :(得分:-1)

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