所以我有一个使用几个非常大的SDK(例如Amazon AWS SDK)的应用程序。为了规避dex文件的64k方法限制,我在app的prod和debug版本上运行proguard,以便成功编译。
proguard文件如下:
-keep class org.w3c.dom.bootstrap.** { *; }
-keep class org.joda.time.** { *; }
-keep class com.facebook.** { *; }
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-dontwarn org.codehaus.jackson.map.ext.**
该应用运行正常,我可以使用Android Studio内置的调试器来添加断点并逐步完成代码。
然而,当我这样做时,我注意到通常记录在调试窗口的Variables部分中的任何方法参数都没有显示出来。此外,声明的任何常规变量,如
int number = 4;
也不会出现。唯一显示的变量是类成员变量。
我是否需要添加到我的proguard文件中以获取其余的这些变量?谢谢!
答案 0 :(得分:3)
-keepattributes LocalVariableTable, LocalVariableTypeTable
对于调试,您可能只是应用收缩,禁用优化(耗时)和混淆(难以调试):
-dontoptimize
-dontobfuscate