Android 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

我正在为我的应用程序使用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.** {
    *;
}

有什么问题吗?我怎样才能修好它?它已经困扰我好几个星期了。

尝试在您的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库中的一个。