微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – Proguard保留接口和抽象类的参数名称

我试图阻止proguard从混淆接口(或抽象类)方法参数.

让我说我的lib中有这个接口:

package com.mypackage;
public interface MyLibListener {
    void onSomething(boolean success,String message); 
}

这个proguard文件

-keepparameternames
-keep interface com.mypackage.MyLibListener {
    *;
}

然后我组装发布,我得到:

package com.mypackage;
public interface MyLibListener {
    void onSomething(boolean var1,String var2);
}

抽象类或使用@Keep注释也是如此.混淆选项keepparameternames似乎只适用于常规类.任何的想法?谢谢!

(相关SO:How to not obfuscate interface methods & it’s parameters using Progaurd in android?Proguard keep interface method variable names)

解决方法

将ProGuard options添加到您的配置中.

-keepattributes MethodParameters

如果您的类文件是hava方法参数元数据(使用Java8 -parameters等编译而成……),ProGuard将保留元数据.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐