Android Firebase 数据库已损坏
Posted
技术标签:
【中文标题】Android Firebase 数据库已损坏【英文标题】:Android Firebase Database corrupted 【发布时间】:2018-11-21 11:16:38 【问题描述】:我在我的 android 应用中使用 Firebase 数据库并使用了很长时间。最近我遇到了一个问题,比如当我打开我的应用程序时,它就崩溃了。我所看到的只是 Firebase 崩溃报告中的以下错误:
异常 java.lang.RuntimeException:Firebase 数据库运行循环 (3.0.0) 中未捕获的异常。请向 [REDACTED_EMAIL_ADDRESS] 报告 com.google.android.gms.internal.zzdzy.run() android.os.Handler.handleCallback (Handler.java:739) android.os.Handler.dispatchMessage (Handler.java:95) android.os.Looper.loop (Looper.java:145) android.app.ActivityThread.main (ActivityThread.java:7007) java.lang.reflect.Method.invoke (Method.java) java.lang.reflect.Method.invoke (Method.java:372) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1404) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1199) 由 java.lang.RuntimeException 引起:android.database.sqlite.SQLiteDatabaseCorruptException:数据库磁盘映像格式错误(代码 11)######################## ####################################### 错误代码:11(SQLITE_CORRUPT) 原因:数据库磁盘映像格式错误。 (数据库磁盘映像格式错误(代码 11))###################################### ########################## com.google.android.gms.internal.zzegv.zze () com.google.android.gms.internal.zzefh.zzg() com.google.android.gms.internal.zzefh.zza () com.google.android.gms.internal.zzedn.zza () com.google.firebase.database.zzs.run() java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:422) java.util.concurrent.FutureTask.run (FutureTask.java:237) java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 (ScheduledThreadPoolExecutor.java:152) java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:265) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112) java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587) java.lang.Thread.run (Thread.java:818)<pre>
Caused by android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed (code 11) ################################################################# Error Code : 11 (SQLITE_CORRUPT) Caused By : The database disk image is malformed. (database disk image is malformed (code 11)) #################################################################
android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow (SQLiteConnection.java)
android.database.sqlite.SQLiteConnection.executeForCursorWindow (SQLiteConnection.java:989)
android.database.sqlite.SQLiteSession.executeForCursorWindow (SQLiteSession.java:836)
android.database.sqlite.SQLiteQuery.fillWindow (SQLiteQuery.java:62)
android.database.sqlite.SQLiteCursor.fillWindow (SQLiteCursor.java:144)
android.database.sqlite.SQLiteCursor.getCount (SQLiteCursor.java:133)
android.database.AbstractCursor.moveToPosition (AbstractCursor.java:197)
android.database.AbstractCursor.moveToNext (AbstractCursor.java:245)
com.google.android.gms.internal.zzeaa.zzb ()
com.google.android.gms.internal.zzeaa.zza ()
com.google.android.gms.internal.zzegv.zzf ()
com.google.android.gms.internal.zzefk.call ()
com.google.android.gms.internal.zzegv.zze ()
com.google.android.gms.internal.zzefh.zzg ()
com.google.android.gms.internal.zzefh.zza ()
com.google.android.gms.internal.zzedn.zza ()
com.google.firebase.database.zzs.run ()
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:422)
java.util.concurrent.FutureTask.run (FutureTask.java:237)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 (ScheduledThreadPoolExecutor.java:152)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:265)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
我使用的数据库版本是:
实施 'com.google.firebase:firebase-database:11.8.0' 实施 'com.google.firebase:firebase-storage:11.8.0' 实施 'com.google.firebase:firebase-auth:11.8.0' 实施 'com.google.firebase:firebase-crash:11.8.0' 实施 'com.github.bumptech.glide:glide:3.7.0' 实施 'com.google.firebase:firebase-firestore:11.8.0'我认为 Firebase 本地 SQLite 数据库已损坏。有人可以告诉我如何解决这个问题吗?如果我升级到新版本,它会工作吗?或者我会因为数据损坏而丢失数据?
我找不到可能是什么问题?
【问题讨论】:
【参考方案1】:有时由于依赖关系而发生。 请看看这个Uncaught exception in Firebase runloop (3.0.0)
【讨论】:
以上是关于Android Firebase 数据库已损坏的主要内容,如果未能解决你的问题,请参考以下文章
已实现 Firebase 实时数据库存储的 Android 应用中的多个应用内产品
Android Firebase如何在特定用户下保存和检索数据
Android-从Firebase实时数据库读取数据并显示在RecyclerView上
如何在 Android 中使用 MVC 模式从 firebase 检索数据? [复制]