首页 > 解决方案 > 对于不使用 SQLite 的应用程序,android.database.sqlite.SQLiteCantOpenDatabaseException 的可能来源是什么

问题描述

应用程序偶尔会出现由 android.database.sqlite.SQLiteCantOpenDatabaseException 导致的崩溃。这是非常罕见的,所以这不是一个重大问题,但我很好奇这个异常的可能原因。该应用程序不使用 SQLite。我想知道图书馆是否使用它。

android.database.sqlite.SQLiteCantOpenDatabaseException: 
  at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:252)
  at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:205)
  at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked (SQLiteConnectionPool.java:505)
  at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:206)
  at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:198)
  at android.database.sqlite.SQLiteDatabase.openInner (SQLiteDatabase.java:918)
  at android.database.sqlite.SQLiteDatabase.open (SQLiteDatabase.java:898)
  at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:762)
  at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:751)
  at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked (SQLiteOpenHelper.java:373)
  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:316)
  at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase (FrameworkSQLiteOpenHelper.java:92)
  at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase (FrameworkSQLiteOpenHelper.java:53)
  at androidx.room.RoomDatabase.beginTransaction (RoomDatabase.java:328)
  at androidx.work.impl.utils.ForceStopRunnable.cleanUp (ForceStopRunnable.java:135)
  at androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:79)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:75)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
  at java.lang.Thread.run (Thread.java:923)
Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: 
  at android.database.sqlite.SQLiteConnection.nativeOpen (SQLiteConnection.java)
  at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:224)
  at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:205)
  at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked (SQLiteConnectionPool.java:505)
  at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:206)
  at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:198)
  at android.database.sqlite.SQLiteDatabase.openInner (SQLiteDatabase.java:918)
  at android.database.sqlite.SQLiteDatabase.open (SQLiteDatabase.java:898)
  at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:762)
  at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:751)
  at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked (SQLiteOpenHelper.java:373)
  at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:316)
  at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase (FrameworkSQLiteOpenHelper.java:92)
  at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase (FrameworkSQLiteOpenHelper.java:53)
  at androidx.room.RoomDatabase.beginTransaction (RoomDatabase.java:328)
  at androidx.work.impl.utils.ForceStopRunnable.cleanUp (ForceStopRunnable.java:135)
  at androidx.work.impl.utils.ForceStopRunnable.run (ForceStopRunnable.java:79)
  at androidx.work.impl.utils.SerialExecutor$Task.run (SerialExecutor.java:75)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
  at java.lang.Thread.run (Thread.java:923)

标签: android-sqlite

解决方案


推荐阅读