有一个类 cn.emagsoftware.test.Demo,
内部类:
public abstract interface GameCallback
{
public abstract void onSuccess();
public abstract void onFail();
内部类:
public abstract interface GameCallback
{
public abstract void onSuccess();
public abstract void onFail();
public abstract void onCancel();
}
使用Progurad混淆代码,保留此内部类
-keep interface cn.emagsoftware.test.Demo$GameCallback{
public <methods>;
}
混淆成功,调用 却要以new Demo$GameCallback(){...};而不是正常的调用方式new Demo.GameCallback(){...};
解决:
在配置规则文件中加入:
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
就可以了