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