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

时间:2016-03-26 20:57:28

标签: android sqlite

我使用此代码处理SQLite。

在我更新到Android 6.0之前,它运行得很好,但现在它崩溃了。

在MyParam课程中

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

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);

我还更新了我的表现:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

但仍然有错误:

  

错误代码:1294(SQLITE_CANTOPEN_ENOENT)引起:指定   目录或数据库文件不存在。 (未知错误(代码1294):   无法打开数据库)

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

感谢。

1 个答案:

答案 0 :(得分:1)

请遵循CommonsWare提供的建议。但是对于marshmallow,即android 6.0及以上版本,你需要要求运行时权限。请看下面的链接

http://developer.android.com/training/permissions/requesting.html

根据android的新运行时权限,仅在清单中指定不够。