我正在尝试ProGuard一个包含内部枚举($('#searchbox').val("father").trigger('keyup')
)的面向公众的类(MyClass
)文件。但是,在ProGuarding之后,内部枚举被分离为自己的类文件MyInnerEnum
。如何防止ProGuard分离内部枚举?我需要能够使用点符号访问内部枚举,例如MyClass$MyInnerEnum
并且不使用MyClass.MyInnerEnum.ENUM_VALUE
之类的美元符号。
我面向公众的课程:
MyClass$MyInnerEnum.ENUM_VALUE
我尝试过这些ProGuard配置选项无济于事:
package com.myclass;
public interface MyClass {
enum MyInnerEnum {
ENUM_VALUE
}
}
答案 0 :(得分:0)
您可以通过保留外部类(在您的案例界面中)和内部枚举来尝试。通过在proguard配置中添加以下行,这应该可以工作:
-keep interface com.myclass.MyClass
-keep enum com.myclass.MyClass$MyInnerEnum
答案 1 :(得分:0)
我遇到同样的问题。我通过添加以下内容来解决它:
# don't proguard all inner enum, need to cooperate with "-keep enum com.companyname.abcd.ClassName$EnumName"
-keepattributes InnerClasses
...
-keep enum com.myclass.MyClass$MyInnerEnum