0

Proguard keep static Inner Class Proguard keep一个 静态内部类的时候

今天在使用Proguard keep一个 静态内部类的时候,混淆完之后一直找不到那个静态内部类,内心抓狂啊。

最后在stackoverflow上找到了答案:

  1. -keepattributes Exceptions,InnerClasses,…
  2. -keep class [packagename].A{
  3.     *;
  4. }
  5. -keep class [packagename].A$* {
  6.     *;
  7. }

 

其中 A$* 表示所有A的内部类都保留下来,也可以如下使用:

  1. -keepattributes Exceptions,InnerClasses,…
  2. -keep class com.xxx.A{ *; }
  3. -keep class com.xxx.A$B { *; }
  4. -keep class com.xxx.A$C { *; }

 

这样可以根据需要只保留A的某一个内部类

以下是proguard文件一部分

  1. #-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
  2. -keepattributes Exceptions,InnerClasses,…
  3. -keep class com.yulore.reverselookup.api.YuloreWindowConfiguration{ *; }
  4. -keep class com.yulore.reverselookup.api.YuloreWindowConfiguration$Builder{ *; }

 

注意:第一行和第二行都可以解决问题

转自:http://blog.csdn.net/top_code/article/details/18225501

 

天边的星星