Le projet de construction et le déploiement de l'application sur l'émulateur avec le niveau 22 ou 25 de l'API vont bien, mais lorsque j'essaie de créer un APK ou de déployer l'application sur mon périphérique réel avec le niveau 16 de l'API, j'obtiens le message d'erreur suivant:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: Java.util.concurrent.ExecutionException: com.Android.dex.DexException: Multiple dex files define Lcom/google/Android/gms/common/api/zza;
Mon projet build.gradle fichier:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:2.2.2'
classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'
classpath 'me.tatarka:gradle-retrolambda:3.3.0-beta4'
classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Mon application build.gradle fichier:
apply plugin: 'com.Android.application'
apply plugin: 'com.neenbedankt.Android-apt'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.google.gms.google-services'
Android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
defaultConfig {
applicationId "<aplication id here>"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
final SUPPORT_LIBRARY_VERSION = '25.0.1'
final DAGGER_VERSION = '2.4'
final BUTTERKNIFE_VERSION = '8.0.1'
final TIMBER_VERISON = '4.3.0'
final LEAKCANARY_VERSION = '1.4'
final FIREBASE_VERSION = '10.0.0'
final FIREBASE_UI_VERSION = '1.0.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile "com.Android.support:appcompat-v7:$SUPPORT_LIBRARY_VERSION"
compile "com.Android.support:design:$SUPPORT_LIBRARY_VERSION"
compile "com.Android.support:recyclerview-v7:$SUPPORT_LIBRARY_VERSION"
compile "com.Android.support:cardview-v7:$SUPPORT_LIBRARY_VERSION"
compile "com.Android.support:support-v4:$SUPPORT_LIBRARY_VERSION"
compile "com.Android.support:support-vector-drawable:$SUPPORT_LIBRARY_VERSION"
compile "com.google.dagger:dagger:$DAGGER_VERSION"
apt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
compile "com.google.firebase:firebase-database:$FIREBASE_VERSION"
compile "com.firebaseui:firebase-ui-database:$FIREBASE_UI_VERSION"
compile "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
apt "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION"
compile "com.jakewharton.timber:timber:$TIMBER_VERISON"
debugCompile "com.squareup.leakcanary:leakcanary-Android:$LEAKCANARY_VERSION"
androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
}
Remarque: si j'ajoute la ligne "multiDexEnabled true" à mon defaultConfig i, l'erreur suivante sera générée:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.Android.build.api.transform.TransformException: Java.util.Zip.ZipException: duplicate entry: com/google/Android/gms/common/api/zza.class
Déplacer ceci:
apply plugin: 'com.google.gms.google-services'
vers le bas de votre fichier app/build.gradle.
Cela ne s'applique probablement pas à la question initiale, mais au cas où cela aiderait quelqu'un d'autre. J'ai rencontré cette erreur avec mon projet ionic v1. Je n'utilise pas firebase, mais je l'ai résolu avec cette réponse (solution facile pour moi - normaliser toutes les versions de service Google pour qu'elles soient identiques dans Android/project.properties).
pour moi, je viens de mettre à jour la bibliothèque firebase à la dernière version et cela a juste fonctionné
Bien que j'aie eu la même erreur mais la solution ci-dessus n'a pas fonctionné pour moi. J'ai réussi à résoudre l'erreur en rétrogradant la version de ma bibliothèque firebase-ui de 2.0.0 à 1.2.0 et en ajoutant ce qui suit au fichier build.gradle au niveau du projet:
allprojects {
repositories {
jcenter()
// Add the following
maven {
url 'https://maven.fabric.io/public'
}
}
}