我试图混淆我的 Android 项目代码,当在我的 proguard.cfg 中包含以下内容时,我设法让 ProGuard 工作:
-keep class javax.** { *; }
-keep class org.codehaus.jackson.** { *; }
-keep class org.springframework.** { *; }
-keep class com.google.ads.**
这些是我在项目中使用的第 3 方依赖项(spring android、google ads 等)。
问题是,在我的手机/模拟器上运行最终的 apk 时,我得到了 NullPointerException。似乎我的代码(混淆的类,如 ab 等)正在从这些 3rd 方依赖项中调用混淆的方法和类,但类名现在不同(例如:名为 Foo 的类仍然是 Foo 因为我没有混淆它但是我的实际代码调用了其他东西)。
有没有人设法让这种设置工作?我也应该混淆这些 3rd 方库吗?