2017-10-18 2 views
1

I think onesignal is making a conflict here> Erreur: Échec de l'exécution pour la tâche ': app: transformClassesWithJarMergingForRelease'.Erreur d'entrée en double dans le studio android

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/common/api/zzf.class

Obtenir cette erreur chaque fois que j'essaie de générer signé apk ..

ont essayé code de nettoyage ont essayé à l'exclusion des forfaits

build.gradle (app)

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 26 
buildToolsVersion "26.0.1" 
defaultConfig { 
    applicationId "com.app.app" 
    minSdkVersion 16 
    targetSdkVersion 26 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner 
       "android.support.test.runner.AndroidJUnitRunner" 
    vectorDrawables.useSupportLibrary = true 
    multiDexEnabled true 

    manifestPlaceholders = [onesignal_app_id: "", 
          // Project number pulled from dashboard, local 
    value is ignored. 
          onesignal_google_project_number: ""] 
} 

buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
     } 

    dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 


compile 'cn.pedant.sweetalert:library:1.3' 
compile 'com.onesignal:OneSignal:[3.6.2, 3.99.99]' 
compile 'com.yalantis:contextmenu:1.0.7' 
compile 'com.crystal:crystalrangeseekbar:1.1.1' 
compile 'com.github.mzelzoghbi:zgallery:0.3' 
compile 'com.rengwuxian.materialedittext:library:2.1.4' 
compile 'com.yalantis:flipviewpager:1.0.0' 
compile 'com.android.support:appcompat-v7:26.+' 
compile 'com.android.support:design:26.+' 
compile 'com.android.support:support-vector-drawable:26.+' 
compile 'com.android.support:support-v4:26.0.0-alpha1' 
compile 'com.squareup.picasso:picasso:2.3.2' 
compile 'com.nineoldandroids:library:2.4.0' 
compile 'com.google.zxing:core:3.2.1' 
compile 'com.google.firebase:firebase-core:11.4.2' 
testCompile 'junit:junit:4.12' 
    } 



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

Répondre

1

changement soutenir les versions de la bibliothèque à 26.1.0 comme ci-dessous:

compile 'com.android.support:appcompat-v7:26.1.0' 
compile 'com.android.support:design:26.1.0' 
compile 'com.android.support:support-vector-drawable:26.1.0' 
compile 'com.android.support:support-v4:26.1.0' 

Actuellement, 26.+ utilise 26.1.0 et que vous essayez d'utiliser 26.0.0-alpha1 en même temps et il provoque la duplication. MISE À JOUR: Mettre à jour le gradateur principal de votre projet comme ci-dessous, ajouter des sous-projets {...} partie pour forcer à utiliser la même version de la bibliothèque de support.

allprojects { 
    repositories { 
     //maven jcenter etc. 
    } 

    subprojects { 
     project.configurations.all { 
      resolutionStrategy.eachDependency { details -> 
       if (details.requested.group == 'com.android.support' 
       && !details.requested.name.contains('multidex')) { 
        details.useVersion "26.1.0" 
       } 
      } 
     } 
    } 
} 
+0

n'a pas fonctionne Même erreur :( –

+0

@VivekRaj alors vous devez vérifier les autres dépendances de la bibliothèque si des conflits de version existe ou vérifier ma réponse mise à jour –

+0

toujours pas de chance :( –

0

Edit: enlever seulement cette ligne fonctionnera:

compile 'com.android.support:support-v4:26.0.0-alpha1'

Vous avez cette classe en double, probablement parce que deux (ou plus) de vos bibliothèques sont les mêmes dépendances ajoutant.

La première étape que vous devez effectuer est d'identifier celui qui interfère. Vous pouvez essayer d'exécuter la tâche dependencies dans Gradle, et voir quelles dépendances (ou leurs enfants) sont en conflit.

L'étape secondes sera de dire le script Gradle d'exclure que la dépendance

+0

ne fonctionnait pas Erreur identique :( –

+1

Essayez d'exécuter la tâche 'dependencies' de Gradle s'il vous plaît, et postez la sortie sur votre question – webo80

+0

Toujours pas de chance :( –

0

Vous pouvez ajouter une tâche pour trouver les doublons

task findDuplicates { 
    doLast { 
     Map<String, List<File>> map = [:] 
     Set<File> jars = configurations.compile.matching { 
      include '**/*.jar' 
     }.files 
     jars.each { File jarFile -> 
      zipTree(jarFile).visit { FileVisitDetails fvd -> 
       String path = fvd.relativePath.pathString 
       List<File> matches = map[path] ?: [] 
       matches << jarFile 
       map[path] = matches 
      } 
     } 
     map.each { String path, List<File> matches -> 
      if (matches.size() > 1) { 
       println "Found $path in $matches" 
      } 
     } 
    } 
} 

Ensuite, exécutez gradle findDuplicates de la ligne de commande