我使用这段代码来处理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):无法打开数据库)
我在网上搜索了,但找不到任何答案或解决方案。
谢谢。
Environment.getExternalStorageDirectory()
来构建路径。如果该数据库真的在可移动存储上,您需要将其移动到外部存储或内部存储中。 - CommonsWare