【发布时间】:2015-09-16 15:49:24
【问题描述】:
是否可以启用 Proguard 但保持某些类完全不受 Proguard 影响?我的 proguard 配置文件中有以下几行:
-keep class com.heyzap.** { *; }
但正如我所见,Heyzap 包中的类在 Proguard 通过后实际上已经发生了变化(它们与我最初在 Heyzap jar 文件中的不同)。
我不知道 Proguard 究竟对 Heyzap SDK 做了什么,但是在此构建过程失败后,将 jar 文件转换为 dex 格式并出现错误:
EXCEPTION FROM SIMULATION: com.android.dx.rop.cst.CstInterfaceMethodRef cannot be cast to com.android.dx.rop.cst.CstMethodRef
我还在我的配置中启用了 -dontoptimize 选项。
Heyzap 建议使用这一行来保持他们的 SDK 不受影响:
-libraryjars libs/heyzap-ads-sdk.jar
但 Android Studio 无法编译添加此行的项目,因为 heyzap-ads-sdk.jar 已自动添加到 -injars 列表中(它会抛出 '同一个输入jar被指定了两次。'错误)。
【问题讨论】:
标签: android android-studio android-gradle-plugin