今天在使用Proguard keep一个 静态内部类的时候,混淆完之后一直找不到那个静态内部类,内心抓狂啊。
最后在stackoverflow上找到了答案:
1 2 3 4 5 6 7 |
-keepattributes Exceptions,InnerClasses,... -keep class [packagename].A{ *; } -keep class [packagename].A$* { *; } |
其中 A$* 表示所有A的内部类都保留下来,也可以如下使用:
1 2 3 4 |
-keepattributes Exceptions,InnerClasses,... -keep class com.xxx.A{ *; } -keep class com.xxx.A$B { *; } -keep class com.xxx.A$C { *; } |
这样可以根据需要只保留A的某一个内部类
以下是proguard文件一部分
1 2 3 4 |
#-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod -keepattributes Exceptions,InnerClasses,... -keep class com.yulore.reverselookup.api.YuloreWindowConfiguration{ *; } -keep class com.yulore.reverselookup.api.YuloreWindowConfiguration$Builder{ *; } |