簡體   English   中英

java.lang.RuntimeException:Firestore 中的內部錯誤 (0.6.6-dev)

[英]java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev)

我在我的應用程序中使用 FireStore。 他們的版本是implementation 'com.google.firebase:firebase-firestore:17.0.1'

我正在使用Firestore數據庫和Firestore offline feature of firestore來獲取數據。

這工作正常,但是當我簽署應用程序時,我遇到了錯誤。

   E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.firestoretest.videostatus, PID: 13763
   java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
       at bov.b(Unknown Source:19)
       at box.run(Unknown Source:2)
       at android.os.Handler.handleCallback(Handler.java:789)
       at android.os.Handler.dispatchMessage(Handler.java:98)
       at android.os.Looper.loop(Looper.java:172)
       at android.app.ActivityThread.main(ActivityThread.java:6637)
       at java.lang.reflect.Method.invoke(Native Method)
       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
    Caused by: java.lang.ExceptionInInitializerError
       at cbh.<clinit>(Unknown Source:20)
       at ced.b(Unknown Source:0)
       at cee.b(Unknown Source:0)
       at cee.a(Unknown Source:0)
       at car.a(Unknown Source:4)
       at bod.<init>(Unknown Source:22)
       at bjo.a(Unknown Source:87)
       at bjq.run(Unknown Source:8)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
       at bov$a.run(Unknown Source:15)
       at java.lang.Thread.run(Thread.java:764)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Package.getImplementationVersion()' on a null object reference
       at cco.b(Unknown Source:6)
       at cco.<clinit>(Unknown Source:137)
       at cbh.<clinit>(Unknown Source:20) 
       at ced.b(Unknown Source:0) 
       at cee.b(Unknown Source:0) 
       at cee.a(Unknown Source:0) 
       at car.a(Unknown Source:4) 
       at bod.<init>(Unknown Source:22) 
       at bjo.a(Unknown Source:87) 
       at bjq.run(Unknown Source:8) 
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457) 
       at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
       at bov$a.run(Unknown Source:15) 
       at java.lang.Thread.run(Thread.java:764)

請任何人對此錯誤有任何想法,然后請通知我。 提前致謝。

您是說在創建簽名的 apk 后會發生這種情況嗎?

然后嘗試在 firebase 控制台中添加已簽名應用的 SHA1 或 SHA256

如果您使用對象獲取數據並在 gradle 中使用 minifyEnabled true

然后更改您的 proguard 文件

嘗試將-keep class io.grpc.** {*;}到您的 proguard 配置中。 它應該工作。 自從我添加它以來,沒有任何崩潰。 將進一步測試。

我遇到了同樣的問題,自從我將我的firestore依賴更新為超過 v16 它只發生在我的發布版本中,特別是在debuggable必須設置為false 的情況下

我可以確認所選的解決方案(將以下內容添加到 proguard 配置中)確實解決了崩潰問題。

-keep class io.grpc.** {*;}

注意我正在使用 Flutter,所以這應該適用於 Java/Kotlin Android 和 Flutter

花了幾個小時后,我修復了它

1

檢查路徑 yourproject/Android/app 中是否存在 proguard-android.txt 或 proguard-rules.pro

2

如果它們存在,請復制下面的配置,如果它們不存在,請在我提到的路徑中為它們創建包含相同名稱(proguard-android.txt 和 proguard-rules.pro)的單獨文件

3(配置行)

   -keep class io.grpc.** {*;}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

將上面的代碼粘貼到兩個文件中。

4(通過添加這一行讓你的 myproject/Android/app/build.gradle 看到它們)

 buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.release //If in debug, change release to debug

        minifyEnabled true
        useProguard true
        shrinkResources true

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //I add this line...
    }
}

清理您的項目並運行或生成您的 APK。

祝你好運!

暫無
暫無

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

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