web-dev-qa-db-fra.com

': app: transformClassesWithDexForDebug'. > com.Android.build.transform.api.TransformException: quand j'ai ajouté le dernier SDK de Facebook dans mon projet de studio

Je reçois une erreur lorsque j'essaie d'ajouter Facebook en tant que bibliothèque ou en tant que diplômé 

//compile 'com.facebook.Android:facebook-Android-sdk:4.7.0'

Voici la structure de mon projet de studio Android. Mon bibliothèque principale de répertoires de dossiers d’applications est la suivante.

  compile fileTree(include: ['*.jar'], dir: 'libs')

    compile project(':Twitter-core-release')
    compile project(':Tweet-ui-release')
    compile project(':Twitter-release')
    compile project(':Tweet-composer-release')
    //compile 'com.facebook.Android:facebook-Android-sdk:4.7.0'
    compile project(':facebook_sk')
    compile 'com.Android.support:appcompat-v7:23.0.1'
    compile 'com.Android.support:design:23.0.1'
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
    compile 'com.squareup.retrofit:converter-jackson:2.0.0-beta1'
    compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta1'
    compile 'com.twotoasters.jazzylistview:library:1.2.1'
    compile 'com.twotoasters.jazzylistview:library-recyclerview:1.2.1'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.google.Android.gms:play-services-gcm:8.1.0'
    compile 'com.Android.support:recyclerview-v7:23.0.1'
    compile 'io.realm:realm-Android:0.82.2'
    compile 'com.google.Android.gms:play-services-analytics:8.1.0'
    compile 'jp.wasabeef:recyclerview-animators:1.3.0'
    compile 'com.google.code.gson:gson:2.3'
    compile 'io.fabric.sdk.Android:fabric:1.3.+@aar'
    compile 'com.digits.sdk.Android:digits:1.7.+@aar'

dans ma bibliothèque d'applications, il a universal-image-loader-1.9.4.jar

et dans facebook_sk il suit 

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    //compile 'com.Android.support:appcompat-v7:23.0.1'
    compile 'com.Android.support:support-v4:23.0.1'
}

dans facebook libs il a des boulons-Android-1.1.2.jar 

si je supprime facebook skd et construis mon projet, alors il fonctionne très bien en studio, mais lorsque je ne peux pas utiliser facebook sdk, il me donne l'erreur suivante:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.Android.build.transform.api.TransformException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin/Java'' finished with non-zero exit value 2

Dois-je utiliser multidex?

5
Herry

Pour l'instant j'ai résolu le problème en ajoutant multidex 

defaultConfig {
        applicationId "com.xxxxx"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        // Enabling multidex support.
        multiDexEnabled true
    }


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':Twitter-core-release')
    compile project(':Tweet-ui-release')
    compile project(':Twitter-release')
    compile project(':Tweet-composer-release')
    //compile 'com.facebook.Android:facebook-Android-sdk:4.7.0'
    compile project(':facebook_sk')
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
    compile 'com.squareup.retrofit:converter-jackson:2.0.0-beta1'
    compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta1'
    compile 'com.twotoasters.jazzylistview:library:1.2.1'
    compile 'com.twotoasters.jazzylistview:library-recyclerview:1.2.1'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.google.Android.gms:play-services-gcm:8.1.0'
    compile 'com.google.Android.gms:play-services-analytics:8.1.0'
    compile 'io.realm:realm-Android:0.82.2'
    compile 'jp.wasabeef:recyclerview-animators:1.3.0'
    compile 'com.google.code.gson:gson:2.3'
    compile 'io.fabric.sdk.Android:fabric:1.3.+@aar'
    compile 'com.digits.sdk.Android:digits:1.7.+@aar'
    compile 'com.Android.support:multidex:1.0.1'
}

Et pour Facebook SDK:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    //compile 'com.Android.support:appcompat-v7:23.0.1'
    compile 'com.Android.support:support-v4:23.0.1'
    compile 'com.Android.support:appcompat-v7:23.0.1'
    compile 'com.Android.support:design:23.0.1'
    compile 'com.Android.support:recyclerview-v7:23.0.1'
}
10
Herry

Je reçois la même erreur lorsque j'ai des dépendances en double avec des versions différentes.

Essayez cette commande et vérifiez s’il ya quelque chose deux fois:

gradle dependencies
3
MiguelCatalan

Je devais activer le multiDex et attribuer javaMaxHeapSize "4g", sinon obtenir une erreur de mémoire.

Vous devez disposer des éléments suivants dans le fichier de niveaux de construction de l'application, dans Android, le defaultConfig est déjà présent; il suffit d'ajouter le vrai multiDexEnabled dans celui-ci, dexOptions est nouveau.

defaultConfig {
    multiDexEnabled true
}

dexOptions {
    javaMaxHeapSize "4g"
}
0
s-hunter