Aujourd'hui, après ne rien avoir touché au projet, mon diplômé m'a crié dessus et ne voulait pas compiler le projet. Échec de la résolution de firebase-iid
, firebase-common
, play-services-analytics-impl
, play-services-auth-api-phone
et play-services-auth-base
. Donc, tout un gâchis après le week-end.
J'ai donc vérifié les versions des différentes API et mis à niveau celles qui nécessitaient une mise à niveau. J'ai découvert que Google avait ajouté une dépendance obligatoire à firebase-core
, l'a ajouté, puis mis à niveau mon plugin google-services
et même une dépendance play-services-base
. J'ai également mis à niveau firebase-messaging
vers la version 17.0.0 et crashlytics
vers la version 2.9.3.
Mais toujours, la compilation ne compile pas, avec ce message d'erreur:
La bibliothèque com.google.Android.gms: play-services-measure-base est demandée par plusieurs autres bibliothèques sur [[15.0.2,15.0.2], [15.0.4,15.0.4]], mais elle se résout en 15.0.4. Désactivez le plug-in et vérifiez votre arborescence de dépendances à l'aide de ./gradlew: app: dependencies.
Voici mon fichier Gradle (montrant uniquement les dépendances), après mes tentatives de corrections:
apply plugin: 'com.Android.application'
...
dependencies {
implementation project(':library')
implementation project(':otherlibrary')
implementation 'com.Android.volley:volley:1.1.0'
implementation('org.Apache.httpcomponents:httpmime:4.3.6') {
exclude module: 'httpclient'
}
implementation 'org.Apache.httpcomponents:httpclient-Android:4.3.5'
implementation 'com.google.Android.gms:play-services-base:15.0.1'
implementation 'com.google.Android.gms:play-services-analytics:15.0.2'
implementation 'com.google.Android.gms:play-services-location:15.0.1'
implementation('com.google.Android.gms:play-services-ads:15.0.1') {
exclude group: 'com.Android.support', module: 'customtabs'
}
implementation 'com.google.Android.gms:play-services-identity:15.0.1'
implementation 'com.google.Android.gms:play-services-auth:15.0.1'
implementation 'com.google.Android.gms:play-services-drive:15.0.1'
implementation 'com.google.firebase:firebase-core:16.0.0'
implementation 'com.google.firebase:firebase-messaging:17.0.0'
implementation 'com.Android.support:multidex:1.0.3'
implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'com.daimajia.slider:library:1.1.5@aar'
implementation 'com.Android.support.constraint:constraint-layout:1.1.0'
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:mediarouter-v7:27.1.1'
implementation 'com.Android.support:support-v4:27.1.1'
implementation 'com.Android.support:design:27.1.1'
implementation 'com.Android.support:exifinterface:27.1.1'
implementation 'com.Android.support:support-v13:27.1.1'
// https://mvnrepository.com/artifact/com.darwinsys/hirondelle-date4j
implementation group: 'com.darwinsys', name: 'hirondelle-date4j', version: '1.5.1'
// For RxAndroid and RxJava
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
// Because RxAndroid releases are few and far between, it is recommended you also
// explicitly depend on RxJava's latest version for bug fixes and new features.
// (see https://github.com/ReactiveX/RxJava/releases for latest 2.x.x version)
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
// Crashlytics
implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.3'
// CSV with outputstream writer
implementation 'com.opencsv:opencsv:4.1'
// Gson
implementation 'com.google.code.gson:gson:2.8.5'
debugImplementation 'com.Android.support.test:runner:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test:rules:1.0.2'
androidTestImplementation 'org.hamcrest:hamcrest-library:1.3'
androidTestImplementation 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
Et mon diplôme au niveau du projet contient les lignes suivantes:
...
repositories {
maven {
url 'https://maven.google.com/'
name 'Google'
}
...
}
dependencies {
...
classpath 'com.google.gms:google-services:4.0.1'
}
...
J'ai déjà essayé de fixer le numéro de version de plusieurs bibliothèques en fonction de la documentation officielle de firebase , qui est plus ou moins identique à cette question .
Comme vous pouvez le lire dans le lien de la documentation officielle, à compter du 2 mai 2018, ils offraient un moyen de résoudre ce type de problème, mais les numéros des versions en question ne sont pas les mêmes et j'ai déjà essayé fixer (avec quelques déclassements maintenant), en vain.
Documents officiels: Si votre application a une dépendance sur com.google.firebase: firebase-core: 15.0.0 ainsi que l'une des bibliothèques suivantes:
com.google.Android.gms:play-services-analytics com.google.Android.gms:play-services-appinvite com.google.Android.gms:play-services-tagmanager com.google.firebase:firebase-analytics com.google.firebase:firebase-crash com.google.firebase:firebase-dynamic-links com.google.firebase:firebase-messaging
Vous devrez mettre à jour la version de cette dernière dépendance vers 15.0.2. Cela résout le problème où la version 3.3.0 du plug-in Gradule des services Google indique: La bibliothèque com.google.Android.gms: Play-Services-Measurement-Base est en cours demandé par diverses autres bibliothèques à [[15.0.0,15.0.0], [15.0.2,15.0.2]], mais passe à 15.0.2 ...
Alors, comment puis-je résoudre ces conflits de versions pour que ma compilation soit compilée correctement?
Donc, après une journée perdue dans ce numéro, j'ai découvert que la dernière version de play-services-analytics
est pas celle qu'ils ont publiée dans leur site web . C'est 16.0.0
et non 15.0.2
.
Android Studio a dit cela à un collègue en guise d'avertissement, mais le mien n'était pas inquiet à ce sujet. Alors voila, la ligne qui change tout:
implementation 'com.google.Android.gms:play-services-analytics:16.0.0'
J'ai ajouté ceci à mon build.gradle (version de l'application) et cela a fonctionné:
googleServices { disableVersionCheck = true }
J'ai essayé de revenir à une ancienne version, et cela semblait fonctionner. Ce que j'ai trouvé, c'est que le gradle-wrapper.properties
utilisait une version plus ancienne (4.5) au lieu de la version 4.6 que j'avais dans le projet plus récent. Changer cela et revenir à classpath 'com.Android.tools.build:gradle:3.2.0-alpha08'
à partir de alpha15 semblaient faire l'affaire. Je pense que vous pouvez utiliser l'alpha 15 si vous le souhaitez, mais pour être sûr de pouvoir utiliser le classpath 'com.Android.tools.build:gradle:3.1.2'
. Parallèlement à ces modifications, le firebase-core
et le google-gms-services
doivent être définis à la version 16.0.0.
Malheureusement, le service Google Play a été arrêté Cette veuve msg est générée et ne jamais exécuter aucun service Google ne