web-dev-qa-db-fra.com

Obtenir l'erreur "entrée en double: com/google/Android/gms/internal/zzble.class" lors de la tentative d'ajout d'un package

J'essaie d'ajouter le package react-native-firestack à mon application. Mais cela continue à donner l'erreur suivante:

:app:mergeDebugResources UP-TO-DATE
:app:recordFilesBeforeBundleCommandDebug
:app:bundleDebugJsAndAssets SKIPPED
:app:generateBundledResourcesHashDebug
4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:incrementalDebugJavaCompilationSafeguard UP-TO-DATE
:app:compileDebugJavaWithJavac UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources UP-TO-DATE
:app:transformClassesWithJarMergingForDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.Android.build.api.transform.TransformException: Java.util.Zip.ZipException: duplicate entry: com/google/Android/gms/internal/zzble.class

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.498 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment.
Go to https://facebook.github.io/react-native/docs/getting-started.html
and check the Android tab for setup instructions.

J'ai essayé d'ajouter des paquets à exclude group dans plusieurs paquets. Mais aucun n'a fonctionné. Voici le résultat ./gradlew clean :app:dependencies: https://Gist.github.com/THPubs/8fe8b4b9c80e3c6cd49541d66887c742

J'ai essayé de suivre une autre question similaire au dépassement de capacité de la pile, mais il semble que ce paquet comporte de nombreuses dépendances. Je suis incapable de trouver le conflit.

Mes dépendances build.gradle:

dependencies {
    compile(project(":react-native-firestack"))
    compile project(':react-native-onesignal')
    compile project(':react-native-fbsdk')
    compile project(':react-native-share')
    compile project(':react-native-video')
    compile project(':react-native-uuid-generator')
    compile project(':react-native-udp')
    compile project(':react-native-tcp')
    compile project(':react-native-camera')
    compile project(':react-native-contacts')
    compile project(':react-native-linear-gradient')
    compile project(':react-native-vector-icons')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.Android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile project(':react-native-image-picker')
    compile(project(":react-native-google-signin")){
    exclude group: "com.google.Android.gms" // very important
    }
    compile 'com.google.Android.gms:play-services-auth:10.2.0'
    compile 'com.google.firebase:firebase-crash:10.0.1'
}
15
THpubs

Assurez-vous d'utiliser la même version dans toutes vos bibliothèques de services Google Play: Par exemple:

     compile "com.google.firebase:firebase-core:$project.ext.googlePlayServicesVersion"
        compile "com.google.firebase:firebase-auth:$project.ext.googlePlayServicesVersion"
        compile "com.google.firebase:firebase-database:$project.ext.googlePlayServicesVersion"

    project.ext {
        googlePlayServicesVersion = '10.2.0'
}
13
DoronK

J'ai eu cette erreur aujourd'hui quand mes dépendances étaient les suivantes:

compile 'com.google.firebase:firebase-auth:10.2.0'
compile 'com.google.Android.gms:play-services-auth:10.2.0'
compile 'com.Android.support:appcompat-v7:25.2.0'
compile 'com.Android.support:design:25.2.0'
compile 'com.google.firebase:firebase-database:10.0.1'

Mais il est parti quand j'ai changé la dernière dépendance à celle-ci:

compile 'com.google.firebase:firebase-auth:10.2.0'
compile 'com.google.Android.gms:play-services-auth:10.2.0'
compile 'com.Android.support:appcompat-v7:25.2.0'
compile 'com.Android.support:design:25.2.0'
compile 'com.google.firebase:firebase-database:10.2.0'

Veillez donc à utiliser des dépendances avec les mêmes versions. C'est que les bibliothèques de support devraient avoir la même version, de même que les dépendances de Firebase et Google Play.

4
Purujit Bansal

Ajoutez ceci à votre build.gradle et exécutez gradle findDuplicates

task findDuplicates {
    doLast {
        def findMe = 'com/google/Android/gms/internal/zzble.class'
        configurations.compile.asFileTree.matching {
            include '**/*.jar'
        }.files.each { File jarFile ->
            zipTree(jarFile).visit { FileVisitDetails fvd ->
                if (fvd.path == findMe) {
                    println "Found $findMe in $jarFile.name"
                }
            }
        }
    }
}
0
lance-java

Je suis sûr que vous avez apply plugin: 'com.google.gms.google-services' quelque part dans votre fichier build.gradle, probablement au-dessus.

Cette ligne doit figurer après le bloc de dépendances - ceci permet au plug-in de déterminer la version des services de lecture que vous utilisez.

Vous pouvez vous référer à https://firebase.google.com/docs/Android/setup#add_the_sdk pour plus d'informations.

Dans votre cas, cela devrait ressembler à ceci:

dependencies {
    compile(project(":react-native-firestack"))
    compile project(':react-native-onesignal')
    compile project(':react-native-fbsdk')
    compile project(':react-native-share')
    compile project(':react-native-video')
    compile project(':react-native-uuid-generator')
    compile project(':react-native-udp')
    compile project(':react-native-tcp')
    compile project(':react-native-camera')
    compile project(':react-native-contacts')
    compile project(':react-native-linear-gradient')
    compile project(':react-native-vector-icons')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.Android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile project(':react-native-image-picker')
    compile(project(":react-native-google-signin")){
    exclude group: "com.google.Android.gms" // very important
    }
    compile 'com.google.Android.gms:play-services-auth:10.2.0'
    compile 'com.google.firebase:firebase-crash:10.0.1'
}

// after dependencies block
apply plugin: 'com.google.gms.google-services'
0
cpienovi

Je ne sais pas si c'est la meilleure solution, mais je peux résoudre le problème en allant dans /node_modules/react-native-firestack/Android/build.gradle et en remplaçant toutes les versions 10.0.1 par 10.2.0 puis en m'assurant d'utiliser 10.2.0 partout dans mon propre Android/build.gradle.

0
steffeydev

Ajoutez juste ce qui suit dans votre build.gradle

    Android {
            configurations {
            all*.exclude module: 'play-services-awareness'
            }
    }
0
nanev1976