Reputation: 181
My flutter app works fine in debug mode. But, when I run it with flutter run --release
I am getting the following error.
E/AndroidRuntime(18551): java.lang.ExceptionInInitializerError
E/AndroidRuntime(18551): at e.c.M1.o.forTarget(Unknown Source:0)
E/AndroidRuntime(18551): at e.c.M1.p.a(:1)
E/AndroidRuntime(18551): at e.c.J0.b(:2)
E/AndroidRuntime(18551): at com.google.firebase.firestore.p0.V.e(:2)
E/AndroidRuntime(18551): at com.google.firebase.firestore.p0.r.call(Unknown Source:2)
E/AndroidRuntime(18551): at c.d.a.b.l.O.run(Unknown Source:4)
E/AndroidRuntime(18551): at com.google.firebase.firestore.q0.G.a(:1)
E/AndroidRuntime(18551): at com.google.firebase.firestore.q0.l.run(Unknown Source:4)
E/AndroidRuntime(18551): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime(18551): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime(18551): at java.lang.Thread.run(Thread.java:923)
E/AndroidRuntime(18551): Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: e.c.J1.values []
E/AndroidRuntime(18551): at java.lang.Enum.enumValues(Enum.java:270)
E/AndroidRuntime(18551): at java.lang.Enum.access$000(Enum.java:61)
E/AndroidRuntime(18551): at java.lang.Enum$1.create(Enum.java:277)
E/AndroidRuntime(18551): at java.lang.Enum$1.create(Enum.java:275)
E/AndroidRuntime(18551): at libcore.util.BasicLruCache.get(BasicLruCache.java:63)
E/AndroidRuntime(18551): at java.lang.Enum.getSharedConstants(Enum.java:289)
E/AndroidRuntime(18551): at java.lang.Class.getEnumConstantsShared(Class.java:2428)
E/AndroidRuntime(18551): at java.util.EnumSet.getUniverse(EnumSet.java:407)
E/AndroidRuntime(18551): at java.util.EnumSet.noneOf(EnumSet.java:109)
E/AndroidRuntime(18551): at java.util.EnumSet.of(EnumSet.java:235)
E/AndroidRuntime(18551): at e.c.M1.o.<clinit>(Unknown Source:100)
E/AndroidRuntime(18551): ... 11 more
E/AndroidRuntime(18551): Caused by: java.lang.NoSuchMethodException: e.c.J1.values []
E/AndroidRuntime(18551): at java.lang.Class.getMethod(Class.java:2072)
E/AndroidRuntime(18551): at java.lang.Class.getDeclaredMethod(Class.java:2050)
E/AndroidRuntime(18551): at java.lang.Enum.enumValues(Enum.java:267)
E/AndroidRuntime(18551): ... 21 more
I've tried some ways like upgrading gradle, upgrading some dependencies to latest versions. But still it's not solved. Can you give any ideas on how to solve this?
Upvotes: 6
Views: 2340
Reputation: 664
I am using flutter and , I have found solution.
There are some steps , you must do, please follow correctly:
STEP 1:
In /Android/app folder:
find below files: proguard-android.txt proguard-rules.pro
if they are not exists create them, with same name.
STEP 2:
Paste this code into both files (proguard-android.txt and proguard-rules.pro):
-keep class io.grpc.** {*;}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
STEP 3:
in /Android/app/build.gradle make sure that, theese lines have added:
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release //If in debug, change release to debug
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' *//I add this line...*
} }
STEP 4:
in terminal of Android Studio
flutter clean
then
flutter pub get
after theese steps it must work.
Upvotes: 11
Reputation: 31
I had the same issue:
My app worked in debug mode and crashes in build mode. I check the log in my app and it said java.lang.ExceptionInInitializerError
The mistake I did was, I added the camera permission after the <application> ... </application>
tags
I simply added the <uses-permission android:name="android.permission.CAMERA" />
before the <application>
tag and it worked for me. Now the app isn't crashing
Upvotes: 0