Android Studio - Type de programme déjà présent: com.google.android.gms.internal.measurement.zzwp

89

Hier, mon application fonctionnait bien.

Aujourd'hui, je ne sais pas pourquoi, l'application ne s'est plus compilée après la réouverture d'Android Studio.

L'erreur affichée est

Program type already present: com.google.android.gms.internal.measurement.zzwp
Message{kind=ERROR, text=Program type already present: com.google.android.gms.internal.measurement.zzwp, sources=[Unknown source file], tool name=Optional.of(D8)}

Je ne sais vraiment pas ce qui se passe, j'ai tout cherché et rien n'a fonctionné. Si quelqu'un pouvait m'aider, j'apprécierais vraiment. Je change toutes les dépendances et bibliothèques pour essayer de le résoudre, mais rien n'a fonctionné.

Voici le projet build.gradle

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath 'com.google.gms:google-services:3.2.1'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

task clean(type: Delete) {
    delete rootProject.buildDir
}

Et voici mon module build.gradle: app

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.doctordirectory"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    maven { url "https://jitpack.io" }
}

dependencies {
    implementation fileTree(dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'

    implementation ('com.facebook.android:audience-network-sdk:4.28.0',{
        exclude group: 'com.google.android.gms'
    })
    implementation 'com.facebook.android:facebook-login:4.32.0'
    implementation 'com.android.support:multidex:1.0.3'

    implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'

    implementation 'com.android.support:support-v4:27.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.google.firebase:firebase-core:15.0.0'
    implementation 'com.google.firebase:firebase-database:15.0.0'
    implementation 'com.google.firebase:firebase-crash:15.0.0'
    implementation 'com.google.firebase:firebase-auth:15.0.0'
    implementation 'com.google.firebase:firebase-storage:15.0.0'
    implementation 'com.firebaseui:firebase-ui-database:3.3.1'

    implementation 'com.google.android.gms:play-services-auth:15.0.0'
    implementation 'com.google.android.gms:play-services-plus:15.0.0'
    implementation 'com.google.android.gms:play-services-location:15.0.0'

    implementation 'com.android.support:cardview-v7:27.1.0'
    implementation 'com.android.support:recyclerview-v7:27.1.0'

    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

    implementation 'com.stepstone.apprating:app-rating:2.2.0'
    implementation 'com.android.support:design:27.1.0'
    implementation 'com.android.support:design:27.1.0'
    implementation 'com.github.lguipeng:BubbleView:1.0.1'

    implementation 'uk.co.chrisjenx:calligraphy:2.3.0'

    implementation 'com.miguelcatalan:materialsearchview:1.4.0'

    implementation 'com.github.MdFarhanRaja:SearchableSpinner:1.9'

    implementation 'com.github.sillebille:dynamic-calendar:1.0.1'

    implementation 'com.google.api-client:google-api-client:1.22.0'
    implementation 'com.google.api-client:google-api-client-android:1.22.0'
    implementation 'com.google.apis:google-api-services-people:v1-rev4-1.22.0'
}

apply plugin: 'com.google.gms.google-services'
Caio Araújo
la source
2
Cela doit être la raison pour laquelle les gens n'aiment pas la mise à jour automatique des dépendances ...
user253751
1
@immibis ne vous a pas compris. Vouliez-vous dire que Firebase se met à jour automatiquement même si nous avons mentionné des versions spécifiques?
rpattabi

Réponses:

95

Résolution de ce problème après la mise à jour firebase dependenciesde la dernière liste, par exemple com.google.firebase:firebase-core:15.0.0pour com.google.firebase:firebase-core:15.0.2 obtenir la dernière liste à partir d'ici

Toutes les autres modifications apportées dans la liste ci-dessous

  dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support:customtabs:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.0'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

        implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'

        implementation 'com.facebook.android:audience-network-sdk:4.28.0'
        implementation 'com.facebook.android:facebook-login:4.32.0'
        implementation 'com.android.support:multidex:1.0.3'

        implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'

        implementation 'com.android.support:support-v4:27.1.1'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

        implementation 'com.google.firebase:firebase-core:15.0.2'
        implementation 'com.google.firebase:firebase-database:15.0.0'
        implementation 'com.google.firebase:firebase-crash:15.0.2'
        implementation 'com.google.firebase:firebase-auth:15.0.0'
        implementation 'com.google.firebase:firebase-storage:15.0.2'
        implementation 'com.firebaseui:firebase-ui-database:3.3.1'

        implementation 'com.google.android.gms:play-services-auth:15.0.0'
        implementation 'com.google.android.gms:play-services-plus:15.0.0'
        implementation 'com.google.android.gms:play-services-location:15.0.0'

        implementation 'com.android.support:cardview-v7:27.1.1'
        implementation 'com.android.support:recyclerview-v7:27.1.1'

        implementation 'com.squareup.picasso:picasso:2.5.2'
        implementation 'com.squareup.retrofit2:retrofit:2.3.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

        implementation 'com.stepstone.apprating:app-rating:2.2.0'
        implementation 'com.android.support:design:27.1.1'
        implementation 'com.github.lguipeng:BubbleView:1.0.1'

        implementation 'uk.co.chrisjenx:calligraphy:2.3.0'

        implementation 'com.miguelcatalan:materialsearchview:1.4.0'

        implementation 'com.github.MdFarhanRaja:SearchableSpinner:1.9'

        implementation 'com.github.sillebille:dynamic-calendar:1.0.1'

        implementation 'com.google.api-client:google-api-client:1.22.0'
        implementation 'com.google.api-client:google-api-client-android:1.22.0'
        implementation 'com.google.apis:google-api-services-people:v1-rev4-1.22.0'
    }

2) Dans la mise à jour du fichier build.gradle de niveau supérieur de classpath 'com.google.gms:google-services:3.1.1àclasspath 'com.google.gms:google-services:3.2.1

MJM
la source
5
Cette solution fonctionne. Firebase distribue maintenant ses packages avec des numéros de version indépendants, assurez-vous que tous les packages sur build.gradle sont les derniers.
Tri Nguyen
Ça a marché. Merci beaucoup. J'ai essayé de mettre à jour les choses, mais je n'avais jamais imaginé que Firebase ait changé cela. Je vous remercie.
Caio Araújo
C'est bien que vous ayez édité et ajouté la deuxième partie de ma réponse, car votre réponse est acceptée;)
Ragaisis
m aussi ayant un autre type de problème "Type de programme déjà présent: org.apache.http.io.HttpMessageParser Message {kind = ERROR, text = Type de programme déjà présent: org.apache.http.io.HttpMessageParser, sources = [Source inconnue file], tool name = Optional.of (D8)}, "m en utilisant la dernière version de firebase et la dernière version de support, les bibliothèques de conception, ainsi que build.gradle de mon projet contient classpath 'com.android.tools.build:gradle:3.1 .2 'classpath' com.google.gms: google-services: 4.0.0 ', le problème persiste.
immuable le
1
J'ai vu au fil du temps que la meilleure solution est de mettre à jour ces dépendances vers la dernière version qui apparaît SUR LEUR SITE, pas la dernière qui apparaît dans le fichier gradle
Razvan
21

J'ai aussi cette erreur et ma solution à ce problème

1) Mettez à jour la version Firbase pour qu'elle soit indépendante de la version des services Google Play

implementation "com.google.firebase:firebase-messaging:15.0.2"

Vous pouvez consulter la dernière version ici https://firebase.google.com/support/release-notes/android#latest_sdk_versions

2) Dans la mise à jour du fichier build.gradle de niveau supérieur, google-services de 3.1.1 à 3. 2 .1

buildscript {
    dependencies {

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

    }
 }
Ragaisis
la source
12

Je change juste

implementation 'com.google.firebase:firebase-crash:15.0.0'

à

implementation 'com.google.firebase:firebase-crash:15.0.2'

Ça marche.

Richard Hsieh
la source
7

Firebase est la raison pour laquelle ils mettent à jour les numéros de version comme ils ne se soucient pas des développeurs.

Tout d'abord. Mettre à jour le classpath dans le gradle de niveau projet

dependencies {

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

    }

Ensuite, quels que soient les outils que vous utilisez, tels que les analyses, les liens dynamiques, etc. Utilisez la dépendance versionnée appropriée.

https://firebase.google.com/support/release-notes/android

Dans mon cas, j'utilisais des tests A / B via une configuration à distance, je dois donc le mettre à jour à partir de

implementation 'com.google.firebase:firebase-config:15.0.0'

à

implementation 'com.google.firebase:firebase-config:15.0.2'

Cela devrait fonctionner sans aucun problème. Et aussi, veuillez poster ce genre de problèmes sur Firebase afin qu'ils ne fassent pas ce genre de changements sans avertissement ou sans documentation appropriée.

Ashok Kumar S
la source
2
"Firebase est la raison pour laquelle ils mettent à jour les numéros de version comme ils ne se soucient pas des développeurs." Bien dit 👌
Lenin Raj Rajasekaran
6

Mettez à jour vos dépendances Firebase.

1. build.gradle au niveau du projet

Mettez google.gmsà jour la version la plus récente. Suivre la dernière version . Au moment de la réponse, la dernière est 4.1.0.

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:4.1.0' // google-services plugin
    }
}

allprojects {
    // ...
    repositories {
        // ...
        google() // Google's Maven repository
    }
}

2. build.gradle au niveau de l'application

Mettez à jour ci-dessous la dépendance si vous en utilisez. Notez que Firebase a maintenant des versions individuelles pour chaque dépendance.

Utilisez les dernières bibliothèques Firebase . Au moment de la réponse, les dernières versions sont ci-dessous.

Firebase Core                com.google.firebase:firebase-core:16.0.3
Ads                          com.google.firebase:firebase-ads:15.0.1
Analytics                    com.google.firebase:firebase-analytics:16.0.3
App Indexing                 com.google.firebase:firebase-appindexing:16.0.1
Authentication               com.google.firebase:firebase-auth:16.0.3
Cloud Firestore              com.google.firebase:firebase-firestore:17.1.0
Cloud Functions              com.google.firebase:firebase-functions:16.1.0
Cloud Messaging              com.google.firebase:firebase-messaging:17.3.2
Cloud Storage   c            om.google.firebase:firebase-storage:16.0.2
Crash Reporting              com.google.firebase:firebase-crash:16.2.0
Crashlytics                  com.crashlytics.sdk.android:crashlytics:2.9.5
Dynamic Links                com.google.firebase:firebase-dynamic-links:16.1.1
Invites                      com.google.firebase:firebase-invites:16.0.3
In-App Messaging             com.google.firebase:firebase-inappmessaging:17.0.1
In-App Messaging Display     com.google.firebase:firebase-inappmessaging-display:17.0.1
ML Kit: Model Interpreter    com.google.firebase:firebase-ml-model-interpreter:16.2.0
ML Kit: Vision               com.google.firebase:firebase-ml-vision:17.0.0
ML Kit: Image Labeling       com.google.firebase:firebase-ml-vision-image-label-model:15.0.0
Performance Monitoring       com.google.firebase:firebase-perf:16.1.0
Realtime Database            com.google.firebase:firebase-database:16.0.2
Remote Config                com.google.firebase:firebase-config:16.0.0

3. N'oubliez pas le plugin google

N'oubliez pas non plus d'ajouter apply plugin: 'com.google.gms.google-services' en bas de build.gradle au niveau de l'application.

Synchroniser et construire ...

Khemraj
la source
1
Bons conseils pour vérifier les dernières versions. Je préfère utiliser bintray.com/android/android-tools/… pour vérifier la dernière version de google-services. La page mvn est très déroutante avec ses sections Centralet Springs Plugins.
Sébastien
5

Supprimez la dépendance qui contient "com.google.android.gms" puis essayez de reconstruire le projet ... vous devez faire appuyez sur n essayez car il y a une dépendance qui utilise deux fois là

Par exemple com.android.support:designajouté twise

Arul Harsh
la source
4

Cela s'est produit avec moi après avoir ajouté la dernière version d'analitycs de la base de feu, comme ceci

implementation "com.google.firebase:firebase-core:16.0.5"

le changement de version en 16.0.4 a aidé

implementation "com.google.firebase:firebase-core:16.0.4"
snersesyan
la source
2

Pour moi, le problème semblait être causé par les outils de construction Android

Pour réparer, j'ai dû les rétrograder dans le build.gradlefichier de niveau supérieur des projets mu

-        classpath 'com.android.tools.build:gradle:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.0.1'

Je suis conscient que ce n'est pas la meilleure solution, mais jusqu'à présent la seule chose qui a fonctionné pour moi.

EDIT: Vous pouvez également ajouter android.enableD8=falseà votre gradle.propertiesfichier de projet

RWIL
la source
2

Le commentaire de la dépendance suivante a résolu le problème pour moi:

implementation 'com.google.android.gms:play-services-analytics::16.0.7'
Patrick Goley
la source
2
allprojects {
    repositories {
    //start here
    configurations.all {
 resolutionStrategy.eachDependency { DependencyResolveDetails details ->
   def requested = details.requested
       if (requested.group == 'com.google.android.gms') {
          details.useVersion '12.0.1'
       }
       if (requested.group == 'com.google.firebase') {
          details.useVersion '12.0.1'
         }
       }
     }
    //end
     jcenter()
       maven {
         url "https://maven.google.com"
       }
     }
 }
lakshman bodduluru
la source
1

Ok, attendez une seconde. J'ai vérifié que toutes les bibliothèques Firebase n'ont pas besoin de cette version. Les versions sont désormais mal alignées. En fait, la page officielle rapporte que certains sont à 15.1.0 au lieu de 15.0.2;

Peut-être voir directement ici si cela peut être utile:

https://firebase.google.com/docs/android/setup

AlexPad
la source
0

Si vous rencontrez d'autres problèmes qui bloquent la compilation, essayez de mettre à niveau la dépendance des services Google vers la version 3.2.0 . Pour moi, au moins, 3.2.1 et 3.3.0 causaient des problèmes et 3.2.0 était celui qui fonctionnait.

najm
la source
mais je pensais que 3.2.1 est nécessaire pour que crashlytics soit construit?
j2emanue
@ j2emanue Personnellement, je n'utilise pas Crashlytics, donc je ne peux pas confirmer mais les 3.2.1 et 3.3.0 empêchaient la compilation d'autres dépendances.
najm