现在的位置: 首页 > 综合 > 正文

使用Progurad工具混淆代码 保留内部类并正常调用

2013年10月12日 ⁄ 综合 ⁄ 共 486字 ⁄ 字号 评论关闭

有一个类 cn.emagsoftware.test.Demo,
内部类:

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

就可以了


抱歉!评论已关闭.