में असंभव है मैंने अभी रिलीज के लिए ग्रैडल का उपयोग करके एपीके बनाया है (प्रोगार्ड 4.9 और हस्ताक्षरित)। जब मैं इस त्रुटि पर एप्लिकेशन यह दुर्घटना का शुभारंभ:एंड्रॉइड रिलीज एपीके क्रैश java.lang.AssertionError: java.lang.Enum
E/AndroidRuntime(8662): java.lang.AssertionError: impossible
E/AndroidRuntime(8662): at java.lang.Enum$1.create(Enum.java:44)
E/AndroidRuntime(8662): at java.lang.Enum$1.create(Enum.java:35)
E/AndroidRuntime(8662): at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
E/AndroidRuntime(8662): at java.lang.Enum.getSharedConstants(Enum.java:210)
E/AndroidRuntime(8662): at java.lang.Enum.valueOf(Enum.java:190)
E/AndroidRuntime(8662): at kr.infli.s.Z(Inflikr.java:390)
E/AndroidRuntime(8662): at kr.infli.a.ev(Inflikr.java:409)
E/AndroidRuntime(8662): at kr.infli.activity.InflikrActivity.onResume(InflikrActivity.java:231)
E/AndroidRuntime(8662): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)
E/AndroidRuntime(8662): at android.app.Activity.performResume(Activity.java:5310)
E/AndroidRuntime(8662): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2778)
E/AndroidRuntime(8662): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2817)
E/AndroidRuntime(8662): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250)
E/AndroidRuntime(8662): at android.app.ActivityThread.access$800(ActivityThread.java:135)
E/AndroidRuntime(8662): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
E/AndroidRuntime(8662): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(8662): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(8662): at android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime(8662): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(8662): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime(8662): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
E/AndroidRuntime(8662): Caused by: java.lang.NoSuchMethodException: values []
E/AndroidRuntime(8662): at java.lang.Class.getMethod(Class.java:661)
E/AndroidRuntime(8662): at java.lang.Class.getDeclaredMethod(Class.java:623)
E/AndroidRuntime(8662): at java.lang.Enum$1.create(Enum.java:41)
E/AndroidRuntime(8662): ... 20 more
इस त्रुटि की तरह लग रहा ऐसा नहीं होना चाहिए: https://android.googlesource.com/platform/libcore/+/9edf43dfcc35c761d97eb9156ac4254152ddbc55/libdvm/src/main/java/java/lang/Enum.java
मेरे build.gradle शामिल हैं:
buildTypes {
release {
runProguard true
proguardFile file('./proguard-project.txt')
signingConfig signingConfigs.release
}
}
मेरे ProGuard-project.txt
-useuniqueclassmembernames
-keepattributes SourceFile,LineNumberTable
+ a bunch of keep class, dontnote, dontwarn,...
जब मैं ProGuard को build.gradle से हटा देता हूं तो यह क्रैश नहीं होता है।
जब मैं एक चींटी निर्माण से प्रोगार्ड का उपयोग कर रहा था तो यह काम करता था (मैंने हाल ही में ग्रैडल में माइग्रेट किया था)।
ग्रैडल + प्रोगार्ड के साथ कोई ज्ञात समस्या?
धन्यवाद
यह 'तरह runProguard' विधि चला गया है लग रहा है, तो मैं बस' proguardFiles getDefaultProguardFile ('ProGuard-android.txt'), फाइल "(ProGuard-rules.txt") ' –
में अपने दो पंक्तियों संयुक्त @ DraškoKokić: 'runProguard' का नाम बदलकर' minifyEnabled 'कर दिया गया [एंड्रॉइड] ग्रैडल प्लगइन 1.0.0] (http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0)। (आपको अपने रिलीज बिल्ड प्रकार के लिए 'minifyEnabled true' निर्दिष्ट करने की आवश्यकता है, अन्यथा ProGuard * नहीं * चलाया जाएगा।) – Jonik