我正在为我的应用程序使用 DexGuard Enterprise。而且我发现每当我使用其中包含 ENUM 的库(例如:ZXing)时,DexGuard 都会对代码进行一些操作,导致我的应用程序崩溃并出现类似
的错误java.lang.AssertionError: impossible
at java.lang.Enum$1.create(Enum.java:49)
at java.lang.Enum$1.create(Enum.java:35)
at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
at java.lang.Enum.getSharedConstants(Enum.java:211)
at java.lang.Enum.valueOf(Enum.java:191)
at com.google.zxing.BarcodeFormat.valueOf(:24)
我尝试了诸如此类的选项(因为我在其他问题上发现了它们),但没有用
-keep enum com.google.zxing.** {
*;
}
问题是什么?我该如何解决?这已经困扰我好几个星期了。
最佳答案
尝试在您的混淆文件中添加以下内容。
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
关于android - Dexguard 总是因枚举而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31047250/