1

My app crashed immediately after launch, and Crashlytics showed this stack:

Fatal Exception: java.lang.ExceptionInInitializerError

keyboard_arrow_up
com.google.android.gms.measurement.internal.zzij.<init> (zzij.java:34)
com.google.android.gms.measurement.internal.zzge.<init> (zzge.java:3)
com.google.android.gms.measurement.internal.zzge.zzp (zzge.java:4)
com.google.android.gms.measurement.internal.AppMeasurementDynamiteService.initialize (AppMeasurementDynamiteService.java:2)
com.google.android.gms.internal.measurement.zzcx.zza (zzcx.java:4)
com.google.android.gms.internal.measurement.zzdt.run (zzdt.java:12)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
java.lang.Thread.run (Thread.java:923)

Caused by java.lang.RuntimeException
java.lang.NoSuchMethodException: com.google.android.gms.measurement.internal.i.values []

keyboard_arrow_up
java.lang.Enum.enumValues (Enum.java:270)
java.lang.Enum.access$000 (Enum.java:61)
java.lang.Enum$1.create (Enum.java:277)
java.lang.Enum$1.create (Enum.java:275)
libcore.util.BasicLruCache.get (BasicLruCache.java:63)
java.lang.Enum.getSharedConstants (Enum.java:289)
java.lang.Class.getEnumConstantsShared (Class.java:2428)
java.util.EnumMap.getKeyUniverse (EnumMap.java:755)
java.util.EnumMap.<init> (EnumMap.java:138)
com.google.android.gms.measurement.internal.zzai.<init> (zzai.java:7)
com.google.android.gms.measurement.internal.zzai.<clinit> (zzai.java:3)
com.google.android.gms.measurement.internal.zzij.<init> (zzij.java:34)
com.google.android.gms.measurement.internal.zzge.<init> (zzge.java:3)
com.google.android.gms.measurement.internal.zzge.zzp (zzge.java:4)
com.google.android.gms.measurement.internal.AppMeasurementDynamiteService.initialize (AppMeasurementDynamiteService.java:2)
com.google.android.gms.internal.measurement.zzcx.zza (zzcx.java:4)
com.google.android.gms.internal.measurement.zzdt.run (zzdt.java:12)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
java.lang.Thread.run (Thread.java:923)

Caused by java.lang.NoSuchMethodException
com.google.android.gms.measurement.internal.i.values []

keyboard_arrow_up
arrow_right
java.lang.Class.getMethod (Class.java:2072)
java.lang.Class.getDeclaredMethod (Class.java:2050)
java.lang.Enum.enumValues (Enum.java:267)
java.lang.Enum.access$000 (Enum.java:61)
java.lang.Enum$1.create (Enum.java:277)
java.lang.Enum$1.create (Enum.java:275)
libcore.util.BasicLruCache.get (BasicLruCache.java:63)
java.lang.Enum.getSharedConstants (Enum.java:289)
java.lang.Class.getEnumConstantsShared (Class.java:2428)
java.util.EnumMap.getKeyUniverse (EnumMap.java:755)
java.util.EnumMap.<init> (EnumMap.java:138)
com.google.android.gms.measurement.internal.zzai.<init> (zzai.java:7)
com.google.android.gms.measurement.internal.zzai.<clinit> (zzai.java:3)
com.google.android.gms.measurement.internal.zzij.<init> (zzij.java:34)
com.google.android.gms.measurement.internal.zzge.<init> (zzge.java:3)
com.google.android.gms.measurement.internal.zzge.zzp (zzge.java:4)
com.google.android.gms.measurement.internal.AppMeasurementDynamiteService.initialize (AppMeasurementDynamiteService.java:2)
com.google.android.gms.internal.measurement.zzcx.zza (zzcx.java:4)
com.google.android.gms.internal.measurement.zzdt.run (zzdt.java:12)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
java.lang.Thread.run (Thread.java:923)

It does not occur with flutter run, but when I install from Google Play, this happens with no exception.

My pubspec.yaml:

environment:
  sdk: ">=2.17.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  flutter_staggered_grid_view: ^0.6.2
  firebase_core: ^1.21.1
  firebase_analytics: ^9.3.3
  firebase_auth: ^3.7.0
  cloud_firestore: ^3.4.6
  firebase_storage: ^10.3.7
  google_sign_in: ^5.1.0
  sign_in_with_apple: ^4.1.0
  crypto: ^3.0.1
  url_launcher: ^6.0.12
  image_picker: ^0.8.4
  cached_network_image: ^3.2.0
  pull_to_refresh: ^2.0.0
  intl: ^0.17.0
  flutter_image_compress: ^1.1.0
  flutter_launcher_icons: ^0.10.0
  transparent_image: ^2.0.0
  cupertino_icons: ^1.0.2
  zoom_widget: ^0.2.1
  advance_pdf_viewer: ^2.0.0
  permission_handler: ^10.0.0
  flutter_colorpicker: ^1.0.3
  dotted_border: ^2.0.0+2
  screenshot: ^1.2.3
  image: ^3.2.0
  pdf: ^3.8.1
  printing: ^5.9.1
  share_plus: ^4.0.10
  path_provider: ^2.0.11
  file_picker: ^5.0.1
  pdf_render: ^1.1.0
  webview_flutter: ^3.0.4
  google_mobile_ads: ^2.0.1
  firebase_crashlytics: ^2.8.9

dev_dependencies:
  flutter_test:
    sdk: flutter

  flutter_lints: ^2.0.1

Updated all dependencies to latest major version.

What could be causing the error?? This has been my headache for weeks..

user16525780
  • 319
  • 1
  • 4
  • 11

4 Answers4

3

I managed to get my flutter project working again while still depending on firebase_analytics by customizing the proguard configuration.

To do this, add a 'proguard-rules.pro' file to the 'android/app' directory and add the following rule

-keep class com.google.android.gms.measurement.internal.** { *; }

Then configure gradle to use your custom proguard file by adding the following line to the 'android/app/build.gradle' under 'android.buildTypes.release'

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

For more context:

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
1

A few points you could check

  1. Google services.json. Have you added the sha256 of release keys. Please go to play store select app integrity. Copy the sha256 of sign in (NOT upload) certificates and add this to firebase. Download a new copy of Google services.json and add this to the project and build

  2. Please check the implementation of google signin too

Kaushik Chandru
  • 15,510
  • 2
  • 12
  • 30
0

Removing the firebase_analytics solved the problem.

user16525780
  • 319
  • 1
  • 4
  • 11
0

In android/build.gradle add this line

subprojects {
    project.evaluationDependsOn(':app')
}
  • 1
    Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jan 15 '23 at 04:52