2

J'essaie d'inclure l'authentification Firebase (en particulier, l'authentification par courriel/mot de passe avec FirebaseUI Auth) dans un projet. Depuis que je suis novice, j'utilise les exemples d'un livre ("Firebase Essentials Android Edition"). Ils fonctionnent comme prévu, le problème apparaît quand je suis obligé d'utiliser:DexException avec FirebaseUI: com.android.dex.DexException: plusieurs fichiers dex définissent Lcom/google/android/gms/internal/zzeg;

compile 'com.google.firebase:firebase-auth:11.2.0' 

au lieu de la version 11.0.4 proposée dans le livre (pour utiliser google maps). La possibilité de se déconnecter et de supprimer un compte cesse de fonctionner.

J'ai cherché des informations et j'essaye de mettre à jour tout ce que je peux. J'utilise Android Studio 2.3.3. À l'heure actuelle, je les build.gradle scripts suivants:

projet build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.3' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     maven { url 'https://maven.google.com' } 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

app build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.2" 
    defaultConfig { 
     applicationId "com.doov.firetest" 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:26.0.0' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.google.firebase:firebase-auth:11.2.0' 
    compile 'com.firebaseui:firebase-ui:2.0.1' 
    compile 'com.firebaseui:firebase-ui-auth:2.0.1' 
    testCompile 'junit:junit:4.12' 
} 

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

Mais quand je construis je reçois l'erreur suivante (je l'ai vu à d'autres moments, c'est pourquoi j'ai fait une question "générique" qui pourrait peut-être résoudre tous ces types de questions):

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/internal/zzeg;

Comment le résoudre?
Merci beaucoup pour votre temps et votre aide dans ce dossier.

+1

Lorsque vous voyez 'com.android.dex.DexException: plusieurs fichiers dex définissent X', vous devez exécuter' gradlew app: dependencies --configuration releaseCompileClasspath'. La sortie aide à trouver une solution – DeKaNszn

Répondre

0

Vous utilisez:

compile 'com.google.firebase:firebase-auth:11.2.0' 
    compile 'com.firebaseui:firebase-ui:2.0.1' 
    compile 'com.firebaseui:firebase-ui-auth:2.0.1' 

Vérifiez la official doc.
Vous devez vous assurer que vous utilisez la même version que votre version choisie de FirebaseUI nécessite.

FirebaseUI Version -> Firebase/Play Services Version  
    3.1.0    11.4.2 
    3.0.0    11.4.2 
    2.4.0    11.4.0 
    2.3.0    11.0.4 
    2.2.0    11.0.4 

Vous devez utiliser:

compile 'com.google.firebase:firebase-auth:11.4.2' 
    compile 'com.firebaseui:firebase-ui:3.1.0' 
    compile 'com.firebaseui:firebase-ui-auth:3.1.0' 

ou une autre combinaison comme dans le tableau.