【问题标题】:java.lang.NoSuchMethodError: No virtual method zzait()Ljava/util/ArrayList; in class Lcom/ Error?java.lang.NoSuchMethodError: 没有虚拟方法 zzait()Ljava/util/ArrayList;在类 Lcom/ 错误?
【发布时间】:2016-11-23 09:52:52
【问题描述】:

您好,我正在 Udacity 课程中学习使用 Firebase。 当我运行我的应用程序并且对此一无所知时,我收到了这个错误。 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)

谁能帮帮我?

更新 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'

【问题讨论】:

  • 您可以发布您的应用模块的 build.gradle 吗?
  • 我已经发布了。请看一看。
  • logcat 输出是否包含此警告:W/GooglePlayServicesUtil: Google Play services out of date?

标签: android firebase


【解决方案1】:

匹配版本可以解决此问题。 在与 Firebase / Google 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 版本的最新可用 firebase 版本,该应用运行良好

【讨论】:

  • 确认:我在 10.2.0 运行 Firebase 依赖项。将它们降级到10.0.1(在1.1.1 运行firebase-ui-auth)可以解决问题。
【解决方案2】:

这很可能是由于 Firebase 和 FirebaseUI 之间的版本不兼容。我遇到了同样的问题,花了 30-45 分钟试图弄清楚。为了继续学习“周末的 Firebase”教程,我最终所做的是:

git checkout 1.04-firebase-auth-firebaseui-signin

这将在本教程的这一点切换到分支。这样做后效果很好。

对于问题所在,也许不是理想的答案,但会让你重新学习课程。

【讨论】:

    【解决方案3】:

    您只需要添加: 编译 'com.google.android.gms:play-services-auth:x.x.x'(找到正确的版本 here)。他们错过了说您还需要添加 play-services-auth 依赖项才能使 google 身份验证正常工作。

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 2019-02-21
      • 1970-01-01
      • 2020-07-13
      • 2018-05-28
      • 2020-06-21
      相关资源
      最近更新 更多