Gradle在proguard之后找不到内部类的符号

Mar*_*ies 5 enums android proguard inner-classes gradle

我的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 *;
 }
Run Code Online (Sandbox Code Playgroud)

我不允许发布任何代码

使用proguard时,内部类是否有任何特殊技巧?

Mar*_*ies 7

不是因为我现在已经提取了我的内部课程,但这应该有效

-keep class my.outer.Class$MyInnerClass
-keepattributes InnerClasses
Run Code Online (Sandbox Code Playgroud)