gpt4 book ai didi

android - SQLiteDiskIOException : disk I/O error (code 3850)

转载 作者:IT王子 更新时间:2023-10-29 06:29:25 26 4
gpt4 key购买 nike

我在某些设备上遇到上述错误(很少见,到目前为止只有 2 次):

android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 3850)
at android.database.sqlite.SQLiteConnection.nativeExecuteForString(Native Method)
at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:679)
at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:361)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:236)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:200)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:669)
at ***.a(***.java:115)

我的代码中的第 115 行如下:

// here the exception occurs
SQLiteDatabase db = SQLiteDatabase.openDatabase(pathApp, null, SQLiteDatabase.OPEN_READONLY);
// ...
db.close();

故事

我所做的是:

  • 应用有root权限
  • 它将数据库从另一个应用程序复制到它自己的目录中
  • 它尝试打开这个数据库并读取一些数据
  • 再次关闭文件

就是这样。这适用于数千台设备。我的应用程序肯定只会访问数据库,我对此非常确定

问题

有谁知道是什么导致了这个问题?

也许是有趣的事实

  • 这两个设备是 OnePlus2
  • 一个人告诉我这个问题是在更新到 Oxygen 2.1 之后出现的

最佳答案

我最近遇到了一个类似的问题,我的应用程序在所有 Android 设备上运行良好,但运行 OxygenOS 2.1 的 OnePlus Two 除外。

在调查问题后,这个特定的组合似乎非常敏感,并且会在某种数据库锁上崩溃。就我而言,我的应用程序在第一次运行时将新数据库复制到设备,然后检查数据库版本以查看是否需要更新。在检查时它在这些设备上崩溃了。我在我的代码中意识到我正在打开一个单独的数据库实例,而不是在检查版本时使用当前打开的数据库。更改代码以避免打开数据库的单独实例后,应用程序不再在 OnePlus 上崩溃。

我的建议是不要在你的应用程序中打开多个数据库实例,或者尝试先关闭数据库再打开它(也许你的复制方法没有关闭数据库或者正在使用同一数据库的另一个实例)。

关于android - SQLiteDiskIOException : disk I/O error (code 3850),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32763107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com