Exception fatale : ScioFrontendApi lors de la mise à niveau des services Google Play avec Firebase pour l'application Android

J'ai téléchargé un nouveau fichier google-services.json à partir de mon compte Firebase et je l'ai placé correctement. Cela était nécessaire dans le cadre du processus de migration de FirebaseInstallations : https://github.com/firebase/firebase-android-sdk/blob/master/firebase-installations/REQUIRED_FIREBASE_OPTIONS_ANDROID.md#what-do-i-need-to-do

2021-04-24 17:34:21.486 9619-9642/in.mycompany.myapp E/AndroidRuntime: FATAL EXCEPTION: ScionFrontendApi
Process: in.mycompany.myapp, PID: 9619
java.lang.VerifyError: Verifier rejected class com.google.android.gms.measurement.internal.zzfp: void com.google.android.gms.measurement.internal.zzfp.zzN(java.lang.String, int, java.lang.Throwable, byte[], java.util.Map) failed to verify: void com.google.android.gms.measurement.internal.zzfp.zzN(java.lang.String, int, java.lang.Throwable, byte[], java.util.Map): [0x37] 'this' arg must be initialized (declaration of 'com.google.android.gms.measurement.internal.zzfp' appears in /data/app/in.mycompany.myapp-zfkLQ-CtTDdM7bRGUt2Hog==/base.apk)
at com.google.android.gms.measurement.internal.zzfp.zzC(Unknown Source:0)
at com.google.android.gms.measurement.internal.AppMeasurementDynamiteService.initialize(com.google.android.gms:play-services-measurement-sdk@@18.0.3:2)
at com.google.android.gms.internal.measurement.zzal.zza(com.google.android.gms:play-services-measurement-sdk-api@@18.0.3:12)
at com.google.android.gms.internal.measurement.zzbh.run(com.google.android.gms:play-services-measurement-sdk-api@@18.0.3:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)

Mes dépendances d'application (app/build.gradle) ressemblent à ceci :

implementation project(':react-native-gesture-handler')
implementation project(':react-native-fs')
implementation project(':react-native-video')
implementation project(':react-native-branch')
implementation jscFlavor
implementation project(':react-native-image-picker')
implementation project(':react-native-scan-barcode')
implementation project(':react-native-bluetooth-escpos-printer')
implementation project(':react-native-image-to-base64')
implementation project(':react-native-mp-android-chart')
implementation project(':react-native-doc-viewer')
implementation project(':react-native-fetch-blob')
implementation project(':react-native-shimmer')
implementation(project(':react-native-device-info'))
implementation project(':react-native-code-push')
implementation project(':react-native-linear-gradient')
implementation project(':react-native-webview')
implementation fileTree(include: ['*.jar'], dir: 'libs')
// From node_modules
implementation project(':react-native-file-chooser')
implementation('com.google.android.material:material:1.0.0') {
force = true;
}
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
exclude group:'com.squareup.okhttp3', module:'okhttp'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
implementation 'androidx.multidex:multidex:2.0.1'
implementation platform('com.google.firebase:firebase-bom:27.0.0')
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-core'
implementation 'com.google.firebase:firebase-config'
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.code.gson:gson:2.7'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation ('com.squareup.okhttp3:okhttp:3.11.0'){
force = true;
}
implementation 'com.google.android.gms:play-services-tagmanager:17.0.0'
implementation project(':react-native-android-circles')
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.facebook.fresco:animated-gif:1.13.0'
implementation(project(':react-native-maps'))
implementation('com.google.android.gms:play-services-base:17.6.0')
implementation('com.google.android.gms:play-services-maps:17.0.0')
implementation 'com.newrelic.agent.android:android-agent:5.19.1'
implementation 'com.facebook.stetho:stetho:1.5.1'
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'
implementation 'com.facebook.stetho:stetho-js-rhino:1.5.1'
androidTestImplementation('com.wix:detox:+')

Et mon application racine build.gradle ressemble à ceci :

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'com.google.gms:google-services:4.3.5'
classpath "com.newrelic.agent.android:agent-gradle-plugin:5.19.1"
classpath 'com.google.android.gms:strict-version-matcher-plugin:1.2.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
buildToolsVersion '29.0.3'
defaultConfig {
minSdkVersion 18
targetSdkVersion 29
}
}
}
}
}
allprojects {
repositories {
google()
maven { url "https://www.jitpack.io" }
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
maven {
url("$rootDir/../node_modules/jsc-android/dist")
}
jcenter()
maven { url 'https://www.jitpack.io' }
maven {
// All of Detox' artifacts are provided via the npm module
url "$rootDir/../node_modules/detox/Detox-android"
}
}
}


Solution du problème

Donc, apparemment, les gammes de versions pour les services Firebase et Google Play sont différentes.

firebase bom 27 & 26tiraient dans firebase-analytics-18.0.3qui tiraient com.google.android.gms:play-services-measurement:18.0.3, mais mes dépendances gms com.google.android.gms:play-services-tagmanager:17.0.0auraient voulu utiliser la dépendance de mesure dans la gamme 17.

Par conséquent, la réduction de la version firebase bom à 25 a fonctionné pour moi.

Le débogage a été effectué via./gradlew:app:dependencies --configuration productionReleaseRuntimeClasspath

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"