簡體   English   中英

java.lang.RuntimeException:無法獲取提供商 com.google.firebase.provider.FirebaseInitProvider:java.lang.NullPointerException

[英]java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.NullPointerException

您好,我正在嘗試為其發布變體構建我們的應用程序,但在首次運行該應用程序時會觸發以下錯誤。

復制步驟:

  1. 構建簽名的 apk
  2. 在模擬器上安裝apk
  3. 應用崩潰
FATAL EXCEPTION: main
Process: silicon.android.app.alpha, PID: 7837
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
         at android.app.ActivityThread.installProvider(ActivityThread.java:7493)
         at android.app.ActivityThread.installContentProviders(ActivityThread.java:6999)
         at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6770)
         at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2134)
         at android.os.Handler.dispatchMessage(Handler.java:106)
         at android.os.Looper.loopOnce(Looper.java:201)
         at android.os.Looper.loop(Looper.java:288)
         at android.app.ActivityThread.main(ActivityThread.java:7898)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
      Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
         at com.google.firebase.components.AbstractComponentContainer.setOf(Unknown Source:220)
         at com.google.firebase.components.ComponentRuntime.setOf(ComponentRuntime.java:46)
         at com.google.firebase.components.RestrictedComponentContainer.setOf(RestrictedComponentContainer.java:150)
         at com.google.firebase.heartbeatinfo.DefaultHeartBeatController.lambda$component$4(DefaultHeartBeatController.java:157)
         at com.google.firebase.heartbeatinfo.DefaultHeartBeatController$$ExternalSyntheticLambda3.create(Unknown Source:0)
         at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:140)
         at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(Unknown Source:4)
         at com.google.firebase.components.Lazy.get(Lazy.java:53)
         at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:606)
         at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:307)
         at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:271)
         at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:256)
         at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)
         at android.content.ContentProvider.attachInfo(ContentProvider.java:2451)
         at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
         at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)
         at android.app.ActivityThread.installProvider(ActivityThread.java:7488)
         at android.app.ActivityThread.installContentProviders(ActivityThread.java:6999) 
         at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6770) 
         at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) 
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2134) 
         at android.os.Handler.dispatchMessage(Handler.java:106) 
         at android.os.Looper.loopOnce(Looper.java:201) 
         at android.os.Looper.loop(Looper.java:288) 
         at android.app.ActivityThread.main(ActivityThread.java:7898) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

巧合的是,這只在發布時運行,但在調試時它工作正常。 我已將 -dontshrink、-dontoptimize、-dontobfuscate 添加到我的 proguard 規則中,這就是我可以生成堆棧跟蹤的原因。

構建 Gradle 值

android {
    compileSdkVersion 33
    buildToolsVersion "33.0.0"
    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 33
        versionCode 1
        versionName '0.1.0'
        consumerProguardFiles "consumer-rules.pro"
}

minifyEnabled、textCoverageEnabled、shrinkResources 都變成 false

Firebase 圖書館

"analytics"  : "com.google.firebase:firebase-analytics-ktx",
"crashlytics": "com.google.firebase:firebase-crashlytics-ktx",
"config"     : "com.google.firebase:firebase-config-ktx",

對於可能遇到此問題的每個人,這是因為 Dexguard 混淆與我正在使用的某些庫沖突。 在這種情況下,值得注意的是 firebase 庫、crashlytics 和脫糖 SDK。

降低 firebase 和脫糖 SDK 到舊版本解決了我的問題。

如果您下次遇到這種情況,請仔細檢查您的提交並查找 SDK 依賴項更新。 從那里開始,因為日志不會有任何幫助。

祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM