2015-06-25 1 views
1

Я использую DexGuard Enterprise для своих приложений. И я считаю, что каждый раз, когда я использую библиотеку, которая есть ENUM в нем (например, для: ZXing), DexGuard сделал что-то в коде, что мое приложение будет врезаться с ошибками, как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.** { 
    *; 
} 

какая проблема? Как я могу это исправить? Это беспокоит меня уже несколько недель.

+0

https://github.com/zxing/zxing/blob/master/glass/proguard.cfg дает список вещей, которые вы можете попробовать. Это не сработало для меня :-(, все еще не может заставить zxing работать с dexguard, но может быть, это может спровоцировать идею того, что можно попробовать? – auspicious99

+0

В моем случае ошибка больше похожа на 'java.lang.RuntimeException : Не удалось найти CaptureActivity. Убедитесь, что загружена одна из библиотек zxing-android. ' – auspicious99

ответ

0

Попробуйте добавить в свой файл proguard следующее.

# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations 
-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
}