2013-09-25 63 views
2

我正在尝试使用proguard来模糊我的Android应用程序的代码。Proguard:空白屏幕

我的问题是,我的应用程序的某些屏幕工作正常,其他人显示一个空白屏幕(尽管不完全空白,例如我的顶部标题栏显示正确,但其余内容是空白的)。

我已经开始与基本设置:

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

然后,在proguard的-project.txt,我尝试添加:

-keep class {my.package.name}.** { *; } 

无变化

然后

-dontskipnonpubliclibraryclassmembers 

没有cha NGE

然后

-dontobfuscate 

这显然解决了这个问题,但再没有一点因为我想混淆我的代码。

有什么想法?

回答

0

看看ProGuard创建的输出;它会告诉你什么类被重命名,哪些类被删除(因为它们看起来没有被使用)。你将需要修改你的配置来重新命名或删除这些课程。通常,您可以在AndroidManifest.xml和混淆后丢失的部分之间找到交互(并且logcat甚至可能会告诉您缺少什么)。反思的使用不太可能导致ProGuard没有意识到保持这些事情的重要性。

如果您决定需要完全混淆正在被更改的东西,但仍然需要,您需要创建可以避免混淆并且知道如何进入真实类的瘦对象代理。

+0

谢谢啊,我会努力的 – Don