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将保留元数据.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...