30 votes

La synchronisation du projet Gradle échoue après l'annonce par Google du nouveau système de numérotation des versions du SDK

Je reçois l'erreur suivante :

Impossible de modifier les dépendances de la configuration ':app:api' une fois qu'elle a été incluse dans la résolution des dépendances.

Mis à jour : Je parviens à compiler en utilisant com.google.gms:google-services:3.3.0 lorsque la liaison des données est désactivée, mais ce n'est pas une solution pour quelqu'un qui a besoin que la liaison des données soit activée.

Après que Google ait annoncé le nouveau système de numérotation des sdk (lien), j'ai suivi les étapes suivantes :

  1. J'ai mis à jour les fichiers gradle comme indiqué pour inclure les numéros de version de gms et de firebase séparément. J'ai mis à jour la ligne du plugin apply, j'ai mis à jour le classpath. Je reçois toujours l'erreur et ne connais pas la raison.

  2. Voici les fichiers gradle 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: Ne placez pas vos dépendances d'application ici; elles doivent être
        // dans les fichiers gradle des modules individuels
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
        maven { url 'https://maven.google.com' }
    }
}

build.gradle (Module:app)

apply plugin: 'com.google.gms.google-services'

Dépendances Firebase :

// Dépendances Firebase
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
}

Dépendances GMS et autres

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 depuis android studio 3.1.2 ici.

Toute aide est appréciée!

1 votes

Veuillez également ajouter votre fichier build.grade qui contient les dépendances Firebase.

1 votes

Utilisez-vous d'autres modules ou juste le module d'application ? Vous devriez aussi poster le fichier build.gradle de vos modules

0 votes

Je pourrais reproduire le même problème lorsque j'ai activé la liaison de données dans le module d'application en utilisant google-services:3.3.0.

15voto

syslogic Points 749

Parvenu à construire contre Play Services & Firebase 15.0.0 avec la liaison de données activée ...mes dépendances ressemblent maintenant à ceci et elles se construisent de nouveau, sans aucune plainte Cannot change dependencies of configuration:

buildscript {

    dependencies {

        classpath "com.android.tools.build:gradle:3.1.2"

        // ne pas mettre à jour, car 3.3.1 semble cassé
        // classpath "com.google.gms:google-services:3.2.1"

        // en attendant, il y a la version 4.0.2 disponible
        classpath "com.google.gms:google-services:4.0.2"
    }
}

il faut référencer individuellement toutes les bibliothèques. référencer simplement com.google.android.gms:playservices 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'

j'ai également dû modifier le Manifest.xml pour corriger la bibliothèque de support:

1 votes

Vous avez raison, si vous êtes sur la version 3.2.1 et que vous activez la liaison de données, alors cela se construit. Cependant, je veux que Google sache/affiche que la version 3.3.0 est cassée lorsque la liaison de données est activée. Merci pour l'aide!

0 votes

@kash lors de l'ajout d'une annotation //noinspection GradleDependency, il ne suggère même pas de mettre à jour vers 3.3.0 - c'est juste une correction esthétique. Au moins, cela fonctionne avec 3.2.1.

0 votes

Les problèmes commencent, lors de l'ajout classpath "com.google.android.gms:strict-version-matcher-plugin:1.0.0" ... qui avait également été introduit en même temps que 3.3.0. android-developers.googleblog.com/2018/05/… ... il ne peut probablement pas faire correspondre strictement ces versions de construction alpha (peu importe); dans les notes de version, la page où la numérologie devrait être expliquée est 404.

5voto

Carmen Points 36

Le problème de liaison de données et de la version 3.3.0 du plugin google-services a été signalé ici : https://issuetracker.google.com/issues/79122163

À ce jour, le bogue est dans l'état "assigné".

2voto

javier Cuervas Points 147

MISE À JOUR J'ai aussi pu 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 la documentation la version 3.2.1 devrait être utilisée. J'ai réussi à compiler avec le code suivant

 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'
}

0 votes

J'ai pu construire avec la liaison de données définie sur faux, mais ce n'est pas exactement une solution au problème pour quelqu'un qui a besoin de la liaison de données. Je vais donc laisser cela ouvert jusqu'à ce que nous trouvions une solution et éditerai la question pour dire que... Merci pour votre aide!

2voto

kash Points 382

Ce problème semble avoir été résolu en utilisant la nouvelle version de google-services (4.0.1 à ce jour). Voici les versions pertinentes qui résoudront le problème indiqué :

Dans vos fichiers build.gradle du projet :

dependencies { 
classpath 'com.android.tools.build:gradle:3.1.3'
classpath 'com.google.gms:google-services:4.0.1' }

Dans vos fichiers build.gradle de l'application :

//Dépendances Firebase
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"

Le data binding est également activé :

dataBinding {
    enabled = true
}

Version d'Android Studio : 3.1.2

Merci à tous pour avoir proposé différentes façons de contourner le problème, comme la réponse de @Kyle et le lien vers l'article Medium qui montre comment utiliser Firebase sans les services Google.

1voto

Carlo Colubio Points 21

Pour remédier au problème, il suffit de rétrograder votre dépendance GooglePlay services en version 3.2.1 :)

classpath 'com.google.gms:google-services:3.2.1'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X