Je reçois l'erreur suivante:
Cannot change dependencies of configuration ':app:api' after it has been included in dependency resolution.
Mise à jour: Je peux créer à l'aide de com.google.gms:google-services:3.3.0
lorsque la liaison de données est désactivée, mais ce n'est pas une solution pour quelqu'un qui nécessite l'activation de la liaison de données.
Après que Google ait annoncé le nouveau système de gestion des versions de sdk ( link ), j'ai suivi les étapes suivantes:
J'ai mis à jour les fichiers Gradle comme indiqué pour inclure séparément les numéros de version gms et firebase. Mise à jour de la ligne apply plugin, mise à jour du classpath. Je reçois toujours l'erreur et je ne connais pas la raison.
Vous trouverez ci-dessous des fichiers de grade pertinents:
build.gradle (principal):
buildscript {
repositories {
google()
jcenter()
maven { url 'https://dl.bintray.com/rvalerio/maven' }
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:3.3.0'
classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'
classpath 'io.realm:realm-gradle-plugin:4.3.3'
classpath 'io.fabric.tools:gradle:1.25.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
maven { url 'https://maven.google.com' }
}
}
build.gradle (module: application)
apply plugin: 'com.google.gms.google-services'
Dépendances Firebase:
//Firebase Dependencies
implementation "com.google.firebase:firebase-messaging:15.0.2"
implementation "com.google.firebase:firebase-core:15.0.2"
implementation "com.google.firebase:firebase-config:15.0.2"
implementation('com.crashlytics.sdk.Android:crashlytics:2.9.1@aar') {
transitive = true
}
GMS et autres dépendances
implementation "com.Android.support:recyclerview-v7:27.1.1"
implementation "com.Android.support:support-v4:27.1.1"
implementation "com.Android.support:cardview-v7:27.1.1"
implementation "com.Android.support:design:27.1.1"
implementation "com.Android.support:support-v13:27.1.1"
implementation "com.Android.support.constraint:constraint-layout:1.1.0"
implementation "com.google.Android.gms:play-services-location:15.0.1"
implementation "com.google.Android.gms:play-services-vision:15.0.1"
implementation "com.google.Android.gms:play-services-auth:15.0.1"
implementation "com.google.Android.gms:play-services-maps:15.0.1"
Toute aide est appréciée!
Ce problème semble avoir été résolu en utilisant la nouvelle version de Google Services (4.0.1 à ce jour). Vous trouverez ci-dessous les versions pertinentes permettant de résoudre le problème indiqué:
Dans vos fichiers build.gradle de projet:
dependencies {
classpath 'com.Android.tools.build:gradle:3.1.3'
classpath 'com.google.gms:google-services:4.0.1' }
Dans les fichiers build.gradle de votre application:
//Firebase Dependencies
implementation "com.google.firebase:firebase-messaging:17.0.0"
implementation "com.google.firebase:firebase-core:16.0.0"
implementation "com.google.firebase:firebase-config:16.0.0"
implementation 'com.google.firebase:firebase-perf:16.0.0'
...} apply plugin: "com.google.gms.google-services"
La liaison de données est également définie sur true:
dataBinding {
enabled = true
}
Version Android Studio: 3.1.2
Merci à vous tous d’avoir fourni diverses manières de contourner le problème, telles que la réponse de @Kyle et le lien de publication moyen qui vous explique comment utiliser firebase sans les services Google.
réussi à construire contre Play Services & Firebase 15.0.0
avec la liaison de données activée ... mes dépendances ressemblent maintenant à cela et il se construit à nouveau, sans aucune réclamation Cannot change dependencies of configuration
:
buildscript {
dependencies {
classpath "com.Android.tools.build:gradle:3.1.2"
// do not update, because 3.3.1 appears broken
// classpath "com.google.gms:google-services:3.2.1"
// meanwhile, there is version 4.0.2 available
classpath "com.google.gms:google-services:4.0.2"
}
}
il faut référencer toutes les bibliothèques individuellement. référencer simplement com.google.Android.gms:play‐services
et/ou com.google.firebase:firebase-core
ne fonctionne plus depuis 15.0.0
.
Android {
dependencies {
// Play Services 15.0.0
implementation "com.google.Android.gms:play-services-base:15.0.1"
implementation "com.google.Android.gms:play-services-auth:15.0.1"
implementation "com.google.Android.gms:play-services-identity:15.0.1"
// Firebase 15.0.0
implementation "com.google.firebase:firebase-core:15.0.2"
implementation "com.google.firebase:firebase-database:15.0.1"
implementation "com.google.firebase:firebase-firestore:16.0.0"
implementation "com.google.firebase:firebase-storage:15.0.2"
implementation "com.google.firebase:firebase-crash:15.0.2"
implementation "com.google.firebase:firebase-auth:15.1.0"
implementation "com.google.firebase:firebase-messaging:15.0.2"
implementation "com.google.firebase:firebase-config:15.0.2"
implementation "com.google.firebase:firebase-invites:15.0.1"
implementation "com.google.firebase:firebase-ads:15.0.1"
implementation "com.google.firebase:firebase-appindexing:15.0.1"
implementation "com.google.firebase:firebase-perf:15.2.0"
implementation "com.google.firebase:firebase-functions:15.0.0"
}
}
apply plugin: 'com.google.gms.google-services'
également dû modifier le Manifest.xml
pour réparer la bibliothèque de support:
<application>
<meta-data
Android:name="Android.support.VERSION"
Android:value="27.1.1"
tools:replace="Android:value"/>
</application
Le problème lié à la liaison de données et à la version 3.3.0
du plugin google-services
a été signalé ici: https://issuetracker.google.com/issues/79122163
A ce jour, le bogue est à l'état "assigné".
UPDATE Je pourrais aussi compiler avec
dataBinding.enabled false
Dans la configuration Android et la version 3.3.0
ORIGINAL
Même problème ici avec google-services: 3.3.0, qui est la dernière version, mais selon docs version 3.2.1 devrait être utilisée J'ai pu compiler avec ce qui suit
ext {
kotlin_version = '1.2.41'
firebaseCore = '15.0.2'
authentication = '15.1.0'
cloudFirestore = '16.0.0'
cloudStorage = '15.0.2'
crashlitics = '2.9.1'
googleServices = '15.0.0'
supportLibrary = '27.1.1'
facebookSdkVersion = '4.31.0'
twitterSdkVersion = '3.1.1'
firebaseUI = '3.3.1'
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.0-alpha12'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:3.2.1'
}
Il suffit de déclasser la dépendance de vos services GooglePlay à 3.2.1 :)
classpath 'com.google.gms:google-services:3.2.1'
Bien que ce ne soit pas une bonne solution, j’ai suivi la recommandation d’un googleur mentionné sur le traqueur de bogues.
J'utilise
com.google.gms:google-services:3.3.1
J'ai activé la liaison de données
`dataBinding.enabled true`
J'ai enlevé la référence du plugin du script de l'application
//apply plugin: 'com.google.gms.google-services'
Nous avons également suivi les recommandations de cet article sur le média pour inclure toutes les valeurs de chaîne du service Google nécessaires.
Mon application se construit avec succès et tout fonctionne comme prévu.
Tout a fonctionné après que j'ai ajouté le maven google () à l'intérieur du bloc allProjects dans mon projet build.gradle comme ceci:
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
...
}
}
repositories {
...
}
// You need to add the google maven in this block.
allprojects {
repositories {
jcenter()
google()
}
}