Je migre mon Android de GCM
vers FCM
. Pour cela, j'utilise l'outil assistant Firebase dans Android Studio et j'ai suivi les instructions du guide du développeur Google. Tout s'est bien passé et j'ai changé le code de mon application pour FCM
selon l'outil Assistant. Maintenant, il est temps d'exécuter et de tester l'application. Et j'ai eu l'étrange erreur suivante:
impossible d'accéder au fichier de classe zzbfm pour com.google.Android.gms.internal.zzbfm introuvable
Je reçois cette erreur lorsque j'utilise google maps et que j'essaie de définir la position du marqueur. Voici mon gradle de niveau d'application:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
maven { url 'https://dl.bintray.com/kennyc1012/maven' }
}
Android {
signingConfigs {
msapp {
}
}
compileSdkVersion 26
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "com.package"
minSdkVersion 16
targetSdkVersion 28
multiDexEnabled true
useLibrary 'org.Apache.http.legacy'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
renderscriptTargetApi 18
renderscriptSupportModeEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
buildTypes {
release {
lintOptions {
checkReleaseBuilds false
abortOnError false
}
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
//Default
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.firebase:firebase-messaging:11.8.0'
testImplementation 'junit:junit:4.12'
//modules
implementation 'com.facebook.Android:facebook-Android-sdk:4.+'
//jar files
implementation files('libs/classes.jar')
implementation files('libs/YouTubeAndroidPlayerApi.jar')
//google repos
implementation 'com.Android.support:appcompat-v7:26.0.0'
implementation 'com.Android.support:support-v4:26.0.0'
implementation 'com.Android.support:recyclerview-v7:26.0.0'
implementation 'com.google.Android.gms:play-services:11.8.0'
implementation 'com.google.Android.gms:play-services-analytics:11.8.0'
implementation 'com.google.Android.gms:play-services-maps:11.8.0'
implementation 'com.Android.support:design:26.0.0'
//square lib
implementation 'com.squareup.retrofit2:converter-gson:2.0.0'
//compile 'com.squareup.leakcanary:leakcanary-Android:1.5'
//text manupulation
implementation 'commons-lang:commons-lang:2.6'
//permission library.
implementation 'com.karumi:dexter:5.0.0'
implementation 'com.google.firebase:firebase-core:16.0.3'
}
apply plugin: 'com.google.gms.google-services'
To resolve your problem, first i will ask you to always use specified and updated version.
1. Replace + with specific version here : classpath 'io.fabric.tools:gradle:1.25.4'
2. Try to use same version for now to run the apk,
compileSdkVersion 27
buildToolsVersion '27.0.3'
targetSdkVersion 27
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:support-v4:27.1.1'
implementation 'com.Android.support:recyclerview-v7:27.1.1'
3. Use updated version of google play service
implementation 'com.google.Android.gms:play-services:16.0.3'
implementation 'com.google.Android.gms:play-services-analytics:16.0.3'
implementation 'com.google.Android.gms:play-services-maps:15.0.1'
This will fix your problem.
Veuillez changer votre Firebase et Google Library pour la même version. Pour un exemple comme celui-ci
implementation 'com.google.Android.gms:play-services:12.0.1'
implementation 'com.google.Android.gms:play-services-analytics:12.0.1'
implementation 'com.google.Android.gms:play-services-maps:12.0.1'
//your firebase lib version to the same version
implementation 'com.google.firebase:firebase-core:12.0.1'
Dans la plupart des cas, il est nécessaire de mettre à niveau les services de jeu et les dépendances de version de Firebase, peut-être le dernier disponible si vous utilisez androidx mais sinon:
Essayez de le vérifier maven_repository et choisissez une version qui vous aide à le corriger. Par exemple:
implementation 'com.google.Android.gms:play-services-analytics:16.0.8'
implementation 'com.google.Android.gms:play-services-maps:16.1.0'
implementation 'com.google.firebase:firebase-messaging:15.0.2'
la version choisie est la dernière avant la version 17 en raison de la v17.0.0 nécessite androidx (en play-service)
N'oubliez pas de mettre à jour votre service google dans votre build.gradle (projet)
classpath 'com.google.gms:google-services:4.3.0'
J'ai rencontré le même problème après la migration AndroidX et résolu en changeant la version de bibliothèque gms pour cartes et emplacement comme ci-dessous
implementation 'com.google.Android.gms:play-services-maps:15.0.1'
implementation 'com.google.Android.gms:play-services-location:15.0.1'
Selon la documentation officielle concernant Dernières versions du SDK , veuillez modifier la ligne de code suivante:
implementation 'com.google.firebase:firebase-messaging:11.8.0'
à
implementation 'com.google.firebase:firebase-messaging:17.3.1'
Et selon la documentation officielle concernant le configurer les services Google Play , veuillez modifier les lignes de code suivantes:
implementation 'com.google.Android.gms:play-services:11.8.0'
implementation 'com.google.Android.gms:play-services-analytics:11.8.0'
implementation 'com.google.Android.gms:play-services-maps:11.8.0'
à
//implementation 'com.google.Android.gms:play-services:11.8.0' //Commented line
implementation 'com.google.Android.gms:play-services-analytics:16.0.3'
implementation 'com.google.Android.gms:play-services-maps:15.0.1
Assurez-vous également d'avoir:
classpath 'com.google.gms:google-services:4.1.0'
Dans votre niveau supérieur build.gradle
fichier.