【发布时间】:2015-06-17 12:41:55
【问题描述】:
我有一个要以 AAR 格式分发的库项目。我已经在上面应用了 ProGuard。
如果我将此库用作模块,ProGuard 设置效果很好,但当我使用生成的 AAR 时则不行。基本上它失败并出现异常“java.lang.IllegalArgumentException:已添加 Lmy/lib/package/name/R;”在应用程序项目中。
ProGuard 正在将我的 lib 类之一重命名为 R,我觉得这是导致 Application 项目出现问题的原因,因为 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)
【问题讨论】:
标签: android-studio proguard aar