我正在尝试使用proguard来混淆我的Android应用程序的代码。
我的问题是,我的应用程序的某些屏幕工作正常,其他一些显示空白屏幕(虽然不是完全空白,例如我的顶部标题栏显示正确,但其余内容为空白)。
我已经开始使用基本设置了:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
然后,在proguard-project.txt中,我试图添加:
-keep class {my.package.name}.** { *; }
没有变化
然后
-dontskipnonpubliclibraryclassmembers
没有变化
然后
-dontobfuscate
这显然解决了这个问题但是没有必要,因为我想混淆我的代码。
有什么想法吗?
答案 0 :(得分:0)
查看ProGuard创建的输出;它会告诉你哪些类被重命名以及哪些类被删除(因为它们似乎未被使用)。您需要将配置修改为nether重命名,也不要删除这些类。通常,您可以在AndroidManifest.xml与模糊处理后丢失的部分之间找到交互(您的logcat甚至可能会告诉您缺少的内容)。不太可能的是,使用反射导致ProGuard没有意识到保持这些事情的重要性。
如果您确定需要对需要更改的内容进行完全模糊处理,则需要创建可以避免混淆的瘦对象代理,并知道如何进入实际类。