android - Android - 即时应用程序中的 Firebase 初始化 - 获取异常
问题描述
这是我的应用程序类:
包 com.example.myapp
import android.support.multidex.MultiDexApplication
import com.facebook.appevents.AppEventsLogger
import com.google.firebase.FirebaseApp
import com.google.firebase.FirebaseOptions
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.FirebaseFirestoreSettings
class App : MultiDexApplication() {
override fun onCreate() {
super.onCreate()
// Facebook
AppEventsLogger.activateApp(this)
// Firebase
FirebaseApp.initializeApp(this)
val settings = FirebaseFirestoreSettings.Builder()
.setPersistenceEnabled(false)
.setTimestampsInSnapshotsEnabled(true)
.build()
FirebaseFirestore.getInstance().firestoreSettings = settings
}
}
这是我得到的错误。它在 App 类的最后一行 FirebaseFirestore.getInstance() 上失败了,说它没有初始化,但你可以在上面看到我正在初始化它?
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapp, PID: 8328
java.lang.RuntimeException: Unable to create application com.example.myapp.App: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.myapp. Make sure to call FirebaseApp.initializeApp(Context) first.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5876)
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)
Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.myapp. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@16.0.1:219)
at com.google.firebase.firestore.FirebaseFirestore.getInstance(com.google.firebase:firebase-firestore@@17.0.5:49)
at com.example.myapp.App.onCreate(App.kt:31)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)
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)
有人知道我需要做什么来解决这个问题吗?这是一个即时应用程序。我已将谷歌服务 json 放入每个模块(基础 + 应用程序 + 即时)中,并将插件添加到每个 gradle。
很奇怪,它显然超过了初始化语句并且仍然失败。
解决方案
对我来说,在任何地方给出的解决方案都没有奏效。只有这行得通。只需将我的谷歌服务从 4.1.0 下载到 4.0.0
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0-alpha08'
classpath 'com.google.gms:google-services:4.0.0'
/*classpath 'com.google.gms:google-services:4.1.0' <-- this was the problem */
}
因此,如果您更新了谷歌服务,只需尝试降级或更改为旧版本即可。
推荐阅读
- android - 无法从 adb 命令 Android 10 获取活动名称
- docker - 使用弹性搜索 unreachable_exception 流利
- ios - Unity IAP 在 Apple Testflight 中不起作用
- asterisk - X-Lite Asterisk 无法建立呼叫 - 禁止号码
- android - getResources().getDrawable(rippleResourceId, null) 以错误的颜色返回rippleDrawable
- javascript - 如何根据按钮按下和屏幕尺寸显示/隐藏侧边栏?
- elixir - 为伞形项目选择发布配置
- android - 如何理解关于 viewmodel:activity 的 1:n 关系?
- javascript - 为什么 .fontcolor() 仍未被宣布为过时?
- javascript - 无法在 Vue.js 应用程序的 main.ts 中导入打字稿模块