添加最新的 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 进行崩溃分析上报

实施 Firebase 崩溃分析的问题

添加 cocoapods 依赖项后,Fastlane 健身房失败

使用安装了 Firebase 的自定义崩溃处理程序

FirebaseApp.configure() 在启动时使应用程序崩溃