Android Archieve(.aar) 库的 ProGuard 问题

ProGuard issues with Android Archieve(.aar) library

我有一个我想以 AAR 格式分发的库项目。我已经在上面应用了 ProGuard。

ProGuard 设置在我将此库用作模块时效果很好,但在我使用生成的 AAR 时效果不佳。基本上它在应用程序项目中失败并出现异常 "java.lang.IllegalArgumentException: already added Lmy/lib/package/name/R;"。

ProGuard 正在将我的一个库 class 重命名为 R,我认为这会导致应用程序项目出现问题,因为 R 用于资源。

如何在 Studio 中指定 proguard 映射以告诉它不要重命名为 R。

更新: 添加 AAR 文件作为新模块后,出现此错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lmy/lib/package/name/R;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)

那好吧,回答我自己。

在 .aar 上手动尝试 运行 ProGuard,使用最新版本 v5.2.1。不适用于 Studio v1.2.2 附带的默认版本 v4.7。希望这有帮助。