【问题标题】:No virtual method setTokenProvider(Lcom/google/firebase/internal/InternalTokenProvider;)V in class Lcom/google/firebase/FirebaseAppLcom/google/firebase/FirebaseApp 类中没有虚拟方法 setTokenProvider(Lcom/google/firebase/internal/InternalTokenProvider;)V
【发布时间】:2020-09-14 03:56:54
【问题描述】:

我是新来的。

在我的 Android 应用中,编译应用时出错。我正在使用 Firebase 身份验证和 Firebase 实时数据库。我按照 Firebase 官方网站上的手册进行操作。但是为什么我会收到这个错误。试了几天还是不行。

提前感谢帮助。

错误:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.login_firebase, PID: 7570
java.lang.NoSuchMethodError: No virtual method setTokenProvider(Lcom/google/firebase/internal/InternalTokenProvider;)V in class Lcom/google/firebase/FirebaseApp; or its super classes (declaration of 'com.google.firebase.FirebaseApp' appears in /data/app/com.example.login_firebase-feIFWbmL-7o_vW0RzlufbA==/base.apk)
    at com.google.firebase.auth.zzp.create(Unknown Source:4)
    at com.google.firebase.components.ComponentRuntime.lambda$new$0(com.google.firebase:firebase-components@@16.0.0:69)
    at com.google.firebase.components.ComponentRuntime$$Lambda$1.get(Unknown Source:4)
    at com.google.firebase.components.Lazy.get(com.google.firebase:firebase-components@@16.0.0:53)
    at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(com.google.firebase:firebase-components@@16.0.0:158)
    at com.google.firebase.FirebaseApp.initializeAllApis(com.google.firebase:firebase-common@@19.3.0:563)
    at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:304)
    at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:268)
    at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:253)
    at com.google.firebase.provider.FirebaseInitProvider.onCreate(com.google.firebase:firebase-common@@19.3.0:51)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1919)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1894)
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(com.google.firebase:firebase-common@@19.3.0:45)
    at android.app.ActivityThread.installProvider(ActivityThread.java:6391)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5938)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5853)
    at android.app.ActivityThread.access$1100(ActivityThread.java:199)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

这些是我添加到 Android Studio 中的代码。

Bulid.gradle

dependencies {
    classpath 'com.android.tools.build:gradle:3.6.1'
    classpath 'com.google.gms:google-services:4.2.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Bulid.gradle(app)

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

  android {
      compileSdkVersion 29
      buildToolsVersion "29.0.3"

defaultConfig {
    applicationId "com.example.login_firebase"
    minSdkVersion 21
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
       }
   }

  }

  dependencies {
      implementation fileTree(dir: 'libs', include: ['*.jar'])

      implementation 'androidx.appcompat:appcompat:1.2.0'
      implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
      implementation 'com.google.firebase:firebase-auth:16.0.5'
      implementation 'com.google.firebase:firebase-database:19.3.1'
      implementation 'com.google.firebase:firebase-core:17.0.0'
      implementation 'com.google.firebase:firebase-analytics:17.5.0'
      testImplementation 'junit:junit:4.12'
      androidTestImplementation 'androidx.test.ext:junit:1.1.2'
      androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
  }

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    您的 Firebase SDK 版本完全不匹配。设置它们,使其与您在documentation 中看到的最新版本相匹配。您应该随着时间的推移更新它们,以便它们保持最新。您还应该删除 firebase-core,因为它不再需要。

          implementation 'com.google.firebase:firebase-auth:19.4.0'
          implementation 'com.google.firebase:firebase-database:19.4.0'
          implementation 'com.google.firebase:firebase-analytics:17.5.0'
    

    【讨论】:

    • 也许 firebase 不需要 firebase-core 库,因为它是用文档编写的
    • 我链接到的页面显示“不再需要 Firebase Android 库 firebase-core。此 SDK 包括用于 Google Analytics 的 Firebase SDK”。如果您发现文档中的某些内容令人困惑,请使用页面顶部的“发送反馈”按钮。
    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 2018-12-22
    • 2018-11-09
    • 2018-10-15
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多