添加最新的 Firebase 依赖项后应用程序崩溃
Posted
技术标签:
【中文标题】添加最新的 Firebase 依赖项后应用程序崩溃【英文标题】:App crashes after adding latest Firebase dependency 【发布时间】:2021-08-07 09:08:12 【问题描述】:添加 Firebase 最新依赖项后,我的 android 应用程序崩溃
我正在使用的依赖项
implementation 'com.google.firebase:firebase-firestore:23.0.3'
我的错误日志
2021-08-07 14:23:23.169 23119-23119/? E/pp.firebasetes: Unknown bits set in runtime_flags: 0x8000
2021-08-07 14:23:24.760 23119-23119/app.firebasetest W/pp.firebasetes: Accessing hidden method Ljava/lang/invoke/LambdaMetafactory;->metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; (blacklist, linking, denied)
2021-08-07 14:23:24.760 23119-23119/app.firebasetest D/AndroidRuntime: Shutting down VM
2021-08-07 14:23:24.768 23119-23119/app.firebasetest E/AndroidRuntime: FATAL EXCEPTION: main
Process: app.firebasetest, PID: 23119
java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.runtime/javalib/core-oj.jar)
at com.google.firebase.components.ComponentDiscovery.discoverLazy(ComponentDiscovery.java:112)
at com.google.firebase.FirebaseApp.<init>(FirebaseApp.java:418)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:299)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:267)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:252)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2102)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2076)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
at android.app.ActivityThread.installProvider(ActivityThread.java:7430)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6934)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6851)
at android.app.ActivityThread.access$1600(ActivityThread.java:242)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:227)
at android.app.ActivityThread.main(ActivityThread.java:7822)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1026)
2021-08-07 14:23:24.831 23119-23119/app.firebasetest I/Process: Sending signal. PID: 23119 SIG: 9
不仅是 firestore 依赖项,如果我添加任何最新的 firebase 依赖项,我的应用在启动时会崩溃。
在使用版本 10 的真实设备上进行测试。
我的 android studio Google Play Service SDK 已安装并且是最新的(版本 49)。
我的android studio版本是4.0
但是如果我添加旧的依赖项它工作正常。
implementation platform('com.google.firebase:firebase-bom:27.1.0')
implementation 'com.google.firebase:firebase-firestore'
但我希望在我的应用程序中使用最新版本的 firebase 依赖项。我怎么了?谁能告诉我...
【问题讨论】:
【参考方案1】:尝试将这些行添加到应用级别build.gradle
android
...
// ADD THESE LINES
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
【讨论】:
以上是关于添加最新的 Firebase 依赖项后应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
Firebase android:更新依赖项后的Multidex错误
Android 应用接入 Firebase Crashlytics 进行崩溃分析上报