Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.NoSuchMethodError: No virtual method zzait()Ljava/util/ArrayList; in class Lcom/ Error?

Hi I'm learning to use Firebase from an Udacity Course. I got this error when I ran my app and have no clue about it. 11-23 16:48:34.995 3947-3947/com.google.firebase.udacity.friendlychat

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.google.firebase.udacity.friendlychat, PID: 3841
java.lang.NoSuchMethodError: No virtual method zzait()Ljava/util/ArrayList; 
in class Lcom/google/android/gms/auth/api/signin/GoogleSignInOptions; 
or its super classes (declaration of 'com.google.android.gms.auth.api.signin.GoogleSignInOptions' appears in /data/data/com.google.firebase.udacity.friendlychat/files/.jrebel/load-dexes/bundle12/libraries24.zip)
at com.google.android.gms.auth.api.Auth$3.zza(Unknown Source)
at com.google.android.gms.auth.api.Auth$3.zzp(Unknown Source) 
at com.google.android.gms.common.api.GoogleApiClient$Builder.addApi(Unknown Source) 
at com.firebase.ui.auth.util.CredentialsAPI.initGoogleApiClient(CredentialsAPI.java:147) 
at com.firebase.ui.auth.util.CredentialsAPI.<init>(CredentialsAPI.java:65)
at com.firebase.ui.auth.ui.ChooseAccountActivity.onCreate(ChooseAccountActivity.java:102)
at android.app.Activity.performCreate(Activity.java:6100)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)                    at com.zeroturnaround.jrebel.android.agent.JRebelInstrumentation.callActivityOnCreate(SourceFile:93)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2601)
at android.app.ActivityThread.access$800(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5637)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)    
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
11-23 16:48:35.176 3947-3975/com.google.firebase.udacity.friendlychatE/GED: Failed to get GED Log Buf, err(0)

Can anyone help me?

UPDATE build.gradle

apply plugin: 'com.android.application'

repositories {
    mavenLocal()
    maven { url 'https://maven.fabric.io/public' }
    flatDir {
        dirs 'libs'
    }
}

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1"

    defaultConfig {
        applicationId "com.google.firebase.udacity.friendlychat"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE-FIREBASE.txt'
        exclude 'META-INF/NOTICE'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

    compile 'com.android.support:design:24.2.0'
    compile 'com.android.support:appcompat-v7:24.2.0'

    // Displaying images
    compile 'com.github.bumptech.glide:glide:3.6.1'
// Firebase
    compile 'com.google.firebase:firebase-database:10.0.0'
    compile 'com.firebaseui:firebase-ui-database:1.0.0'

    // FirebaseUI Auth only
    compile 'com.firebaseui:firebase-ui-auth:1.0.0'

    // FirebaseUI Storage only
    compile 'com.firebaseui:firebase-ui-storage:1.0.0'

    // Single target that includes all FirebaseUI libraries above
    compile 'com.firebaseui:firebase-ui:1.0.0'

    // Firebase Auth
    compile 'com.google.firebase:firebase-auth:10.0.0'

}
apply plugin: 'com.google.gms.google-services'
like image 826
Giang T Avatar asked Nov 23 '16 09:11

Giang T


3 Answers

Matching the versions resolves this. In Compatibility with Firebase / Google Play Services Libraries, it matches

FirebaseUI Version   Firebase/Play Services Version

   1.0.0                   9.8.0

So if dependencies are changed to

compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.firebaseui:firebase-ui-auth:1.0.0'

instead of

compile 'com.google.firebase:firebase-database:10.0.0'
compile 'com.google.firebase:firebase-auth:10.0.0'
compile 'com.firebaseui:firebase-ui-auth:1.0.0'

which is the latest available firebase version for firebaseUI version, the app works fine

like image 55
anoo_radha Avatar answered Sep 28 '22 20:09

anoo_radha


This is most likely do to a version incompatibility between Firebase, and FirebaseUI. I ran into the same issue, and spent 30-45 min trying to figure it out. Ultimately what I did in order to keep going with the "Firebase in a Weekend" tutorial was:

git checkout 1.04-firebase-auth-firebaseui-signin

This will switch to the branch at this point in the tutorial. It works fine after doing so.

Maybe not the ideal answer as to what the problem is, but will get you going again with the course.

like image 39
Aaron Lelevier Avatar answered Sep 28 '22 20:09

Aaron Lelevier


You just need to add : compile 'com.google.android.gms:play-services-auth:x.x.x'(find the right version here). They missed to say that you also need to add play-services-auth dependency for google authentication to work.

like image 41
MihaiBC Avatar answered Sep 28 '22 20:09

MihaiBC