Android Dexguard总是使用枚举崩溃
我正在为我的应用程序使用DexGuard Enterprise。我发现,每当我使用一个包含ENUM的库(例如:ZXing)时,DexGuard都会对代码做一些修改,我的应用程序会崩溃,出现如下错误Android Dexguard总是使用枚举崩溃,android,dexguard,Android,Dexguard,我正在为我的应用程序使用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.ge
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.** {
*;
}
有什么问题吗?我怎样才能修好它?它已经困扰我好几个星期了。尝试在您的proguard文件中添加以下内容
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
您还可以添加
allowoptimization
-keepclassmembers,allowoptimization enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
列出了您可以尝试的事项。它对我不起作用:-(,仍然无法让zxing与dexguard一起工作,但也许它会激发出一种想法,可以尝试什么?在我的例子中,错误更像是
java.lang.RuntimeException:找不到CaptureActivity。请确保加载了zxing android库中的一个。