web-dev-qa-db-fra.com

Erreur FireBase: impossible d'accéder au fichier de classe zzanb pour com.google.Android.gms.internal.zzanb introuvable

UPD. J'ai lu ces questions et réponses ( Fichier de classe pour com.google.Android.gms.internal.zzaja introuvable ). Mais je ne comprends pas quelles chaînes je dois ajouter ou supprimer dans mon projet . Parce que je n’ai pas cela et d’autres chaînes dans mon code: compiler 'com.google.Android.gms: play-services-location: 9.2.0'

Je développe une application Android avec FireBase. Et quand je veux construire mon projet, j'ai une erreur:

Erreur: (39, 25) erreur: impossible d'accéder au fichier zzanb Class pour com.google.Android.gms.internal.zzanb introuvable.

L'erreur a été provoquée par l'invocation de l'instruction: FirebaseAuth.getInstance (). GetCurrentUser ();

Projets 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.2.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()
    }
}

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

Modules build.gradle:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "xxx.yyy.zzz"
        minSdkVersion 19
        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')
    compile 'com.Android.support:appcompat-v7:25.1.0'
    compile 'com.google.firebase:firebase-core:10.0.1'
    testCompile 'junit:junit:4.12'
    compile 'com.Android.support:design:25.1.0'
    compile 'com.firebaseui:firebase-ui:0.6.0'
    compile 'com.Android.support.test.espresso:espresso-core:2.2.2'
}

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

S'il vous plaît, aidez-moi à résoudre cette erreur)

Post-scriptum J'ai déjà lu cette question ( Erreur Firebase ne peut pas accéder à zzanb après avoir utilisé play-services-xxx: 9.8.00 ), mais je n'ai rien compris, ce que je dois ajouter ou supprimer de mes fichiers build.gradle ma situation.

Vous mélangez des bibliothèques d'ancien et de nouveau Firebase. Tous les éléments de Firebase que vous utilisez doivent être à parité. Cette ligne fait référence à une bibliothèque d’une très ancienne version de Firebase (avant qu’elle ne devienne la plate-forme Firebase chez Google):

compile 'com.firebaseui:firebase-ui:0.6.0'

Si vous souhaitez utiliser la bibliothèque Firebase-UI, vous devez utiliser la nouvelle version qui correspond à la version de la bibliothèque cliente principale que vous utilisez. Vous utilisez 10.0.1, donc selon le tableau du github Firebase-UI que je viens de lier, vous voulez cette dépendance:

compile 'com.firebaseui:firebase-ui:1.1.1'

Assurez-vous toujours que votre bibliothèque Firebase-UI correspond au SDK Firebase principal que vous utilisez.

6
Doug Stevenson

Il semble que dans votre cas Doug's fix ait résolu votre problème, mais nous avons récemment rencontré le même problème avec une cause première différente.

Dans notre cas, nous avions configuré notre projet IDE pour utiliser JDK8 mais nous n’avons pas pu vérifier quelle version du JDK était utilisée dans le terminal. Parce que React Native exécute Gradle à partir de la ligne de commande lorsque vous tapez 'react-native run-Android', Gradle tentait de créer à l'aide de JDK10, ce qui posait des problèmes évidents, car Android ne prend actuellement en charge que JDK8. Une fois que nous avons configuré le terminal pour utiliser JDK8, le problème a été résolu.

TL; DR: Vérifiez quelle version du JDK vous utilisez dans le terminal.

1
ZardozSpeaks