web-dev-qa-db-fra.com

Echec de la synchronisation du projet Gradle après l'annonce par Google du nouveau système de gestion de versions SDK

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:

  1. 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.

  2. 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"
  1. J'ai collé le journal des erreurs sur Pastebin à partir d'Android studio 3.1.2 ici .

Toute aide est appréciée!

30
kash

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.

2
kash

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
15
Martin Zeitler

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é".

5
Carmen

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'
}
2
javier Cuervas

Il suffit de déclasser la dépendance de vos services GooglePlay à 3.2.1 :)

classpath 'com.google.gms:google-services:3.2.1'
1
Carlo Colubio

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. 

https://medium.com/@samstern_58566/how-to-use-firebase-on-Android-without-the-google-services-plugin-93ecc7dc6c4

Mon application se construit avec succès et tout fonctionne comme prévu.

0
Kyle

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()
    }
}
0
joelc1225