我的gradle项目包含一个主模块和一个库
该库的一个类包含一个枚举,我已从proguard混淆中排除,因为它在主项目中使用。
Gradle在构建时失败,出现“错误。无法找到符号变量MyEnum”,同样的错误也适用于另一个接口,也在类中声明
我已经反编译了我的库的classes.jar文件,该文件是在构建时生成的,枚举就在它“无法找到”的地方,就像MyClass $ MyEnum一样。编译后,“MyClass”类仍然存在于正确的位置。
这是我用于枚举的proguard代码:
-keep,allowoptimization enum com.mypackage.MyClass$MyEnum {
public static **[] values();
public static ** valueOf(java.lang.String);
**[] $VALUES;
public *;
}
我不允许发布任何代码
使用proguard时,内部类是否有任何特殊技巧?
答案 0 :(得分:7)
不是因为我现在已经提取了我的内部课程,但这应该有效
-keep class my.outer.Class$MyInnerClass
-keepattributes InnerClasses