gpt4 book ai didi

Android - 在 Galaxy Note 上导入 Sqlite 数据库时出现错误代码 11

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:24 29 4
gpt4 key购买 nike

我正在使用下面的代码从 Assets 中导入一个预填充的 (ORMLite) 数据库。

除 Galaxy Note 10.1 外,这在多种设备上都运行良好。在这里,当操作完成后关闭数据库时出现异常:

“错误代码 = 11,消息 = 第 … 行的数据库损坏。”

当我从设备下载数据库并在 SqliteBrowser 中打开它时,一切似乎都很好。有什么想法吗?

public class MySQLiteOpenHelper extends SQLiteOpenHelper {

// {....}

public void importDB() {

InputStream is = context.getAssets().open("DBName.db");

try {
close();
FileOutputStream os = new FileOutputStream(new File(Environment.getDataDirectory(), dbPath));
try {
byte[] buffer = new byte[4096];
for (int n; (n = is.read(buffer)) != -1;) {
os.write(buffer, 0, n);
}
} finally {
os.close();
}
} finally {
is.close();
}
getWritableDatabase().close();
}

错误:

I/SqliteDatabaseCpp(684): sqlite returned: error code = 11, msg = database         corruption at line 48171 of [ed759d5a9e], db=/data/data/app_name/databases/DBName_db
I/SqliteDatabaseCpp(684): sqlite returned: error code = 11, msg = database disk image is malformed, db=/data/data/app_name/databases/DBName_db
E/SqliteDatabaseCpp(684): sqlite3_exec - Failed to set synchronous mode = 1(Normal)
I/SqliteDatabaseCpp(684): sqlite returned: error code = 11, msg = database corruption at line 48171 of [ed759d5a9e], db=/data/data/app_name/databases/DBName_db
I/SqliteDatabaseCpp(684): sqlite returned: error code = 11, msg = database disk image is malformed, db=/data/data/app_name/databases/DBName_db
E/SqliteDatabaseCpp(684): CREATE TABLE android_metadata failed
E/DefaultDatabaseErrorHandler(684): Corruption reported by sqlite on database: /data/data/app.name/databases/DBName.db
E/DefaultDatabaseErrorHandler(684): deleting the database file: /data/data/app.name/databases/DBName.db

最佳答案

在关闭 FileOutputStream 之前,您始终必须同步:os.getFD().sync()。这与文件系统有关。有些人会在他们认为合适的时候写作 - 这可能会造成麻烦。

关于Android - 在 Galaxy Note 上导入 Sqlite 数据库时出现错误代码 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029065/

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