Android 6.0更新后,SQLite数据库崩溃。

6

我使用这段代码来处理SQLite。

在我更新到Android 6.0之前,它完美地工作,但现在它崩溃了。

在MyParam类中

public static SQLiteDatabase dbMyCount;
public static String DB_Path_MyCount = "/sdcard/GMS/MyCount.db";

在MainActivity上
MyParam.dbMyCount = this.openOrCreateDatabase(MyParam.DB_Path_MyCount, MODE_WORLD_WRITEABLE, null);
SQL  = "CREATE TABLE IF NOT EXISTS MyCount(_id INTEGER PRIMARY KEY AUTOINCREMENT,Tdate VARCHAR,Cust VARCHAR,";
SQL += "Prog VARCHAR,CustCode VARCHAR,OpenCode VARCHAR,Memo VARCHAR)";
MyParam.dbMyCount.execSQL(SQL);

我也更新了我的清单(manifest)为以下内容:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

但仍然出现错误:

错误代码:1294(SQLITE_CANTOPEN_ENOENT)造成的原因是:指定的目录或数据库文件不存在。(未知错误(代码 1294):无法打开数据库)

我在网上搜索了,但找不到任何答案或解决方案。

谢谢。


2
永远不要硬编码路径。如果该数据库真的在外部存储上,请使用Environment.getExternalStorageDirectory()来构建路径。如果该数据库真的在可移动存储上,您需要将其移动到外部存储或内部存储中。 - CommonsWare
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接