我正在尝试从云中打开已下载的SQLite
DataBase
并在Android
中将其打开,但我收到此错误:database is locked (code 5): , while compiling: PRAGMA journal_mode
到目前为止,我所做的是:
@Override
public void onCreate(SQLiteDatabase db) {
try {
api.filesDownload(mountID, "/MusicDB", DB_PATH, new SimpleProgressListener());
db = SQLiteDatabase.openDatabase(DB_PATH + DATABASE_NAME, null, SQLiteDatabase.OPEN_READWRITE);
db.close();
} catch (SQLiteException | StorageApiException e) {
e.printStackTrace();
Log.i("DB","Eroare: "+e.getMessage());
// CREATE TABLE'S CODE //
}
}
当我第一次打开应用程序时,我检查我的云是否存在任何数据库并下载它,现在一切正常,直到我尝试打开database
有什么办法可以解决这个问题吗?
答案 0 :(得分:0)
看起来你有几个不同的问题。
您的代码看起来就像是在UI上下载数据库 线。如果你是,你不应该 - 使用后台线程。如果 你是异步下载它(即在后台线程上), 然后它可能不会完全下载了 你尝试在下一行代码中打开它的时间(可能只有少数几个 几毫秒后。)
仔细查看您用于下载和打开数据库的路径,并验证它们是否已解析到同一位置。在我看来,他们可能不会。