2016-11-23 127 views
5

嗨,我正在學習從Udacity課程中使用Firebase。 我在運行我的應用程序時遇到了此錯誤,並且對此沒有任何線索。 11-23 16:48:34.995 3947-3947/com.google.firebase.udacity.friendlychatjava.lang.NoSuchMethodError:無虛方法zzait()Ljava/util/ArrayList;在類Lcom /錯誤?

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) 

誰能幫助我?

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' 
+0

你可以發佈你的應用程序模塊的build.gradle嗎? –

+0

我已經發布了它。請看一看。 –

+0

請參閱此https://github.com/udacity/and-nd-firebase –

回答

2

這是最有可能做的火力地堡,並FirebaseUI之間的版本不兼容。我遇到了同樣的問題,花了30-45分鐘試圖弄清楚。最終,我爲了保住「在一個週末火力地堡」教程與打算做的是:

git checkout 1.04-firebase-auth-firebaseui-signin

這將在教程的這一階段切換到分支。這樣做後它工作正常。

也許不是問題的理想答案,但會讓你再次走上課程。

9

匹配版本解決了這個問題。 在兼容與火力地堡/谷歌Play服務的圖書館,它匹配

FirebaseUI Version Firebase/Play Services Version 

    1.0.0     9.8.0 

所以,如果依賴性改爲

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' 

,而不是

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' 

這是最新的可用火力版本firebaseUI版本,應用程序工作正常

+1

確認:我在'10.2.0'上運行Firebase依賴項。將它們降級到'10.0.1'(運行'1.1.1'的firebase-ui-auth')解決了這個問題。 – RedBassett

+0

這解決了我的問題,謝謝 – mohnage7

1

您只需要添加: compile'c​​om.google.android.gms:play-services-auth:x.x.x'(找到合適的版本here)。他們錯過了說你還需要添加play-services-auth依賴才能使Google身份驗證正常工作。

相關問題