我正在使用 Ant 任务用 ProGuard 混淆一个库。
当它们具有特定注释(@ApiAll)时,我会保留特定的类名及其方法名,并且我要求保留 InnerClasses 属性:
<keepattribute name="InnerClasses" />
<keep annotation="com.example.ApiAll"/>
<keepclassmembers annotation="com.example.ApiAll">
<constructor access="public protected"/>
<field access="public protected"/>
<method access="public protected"/>
<constructor access="protected"/>
</keepclassmembers>
如果我检查映射输出文件,我可以看到具有注释的内部类及其成员保持其名称未混淆。但是,当我查看生成的 jar 文件时,我找不到该类。
我错过了什么吗?为什么映射告诉我它没有保留这个类?