
SQLite在模拟器6.0不能创建表,db.execSQL()语句没有执行
线上代码:
MainActivity.java:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyOpenHelper myOpenHelper = new MyOpenHelper(getApplicationContext());
//创建或打开
SQLiteDatabase writableDatabase = myOpenHelper.getWritableDatabase();
//创建或打开,如果磁盘满了,返回只读的
SQLiteDatabase readableDatabase = myOpenHelper.getReadableDatabase();
}
}

MyOpenHelper.java:
public class MyOpenHelper extends SQLiteOpenHelper {
public MyOpenHelper(@Nullable Context context) {
super(context, "qqwe.db", null, 1);
}
@Override
/**
*第一次创建的始后调用
* 那么这个方法特别适合做表结构的初始化
*此方法在android6.0模拟器不适用,原因待查
* */
public void onCreate(SQLiteDatabase db) {
//id 一般以_id去写
db.execSQL("create table Student ("
+ "id integer primary key autoincrement," + "name text,"
+ "score real," + "age integer," + "gender text)");
System.out.println("创建完成");
}
/**
* 当升级的时候调用
*
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
每次运行之前会将删除,语句System.out.println("创建完成");会执行,在Android4.4运行正常,但在6.0上不能创建表,应该是db.execSQL()语句没有执行。
问:为什么在Android4.4上正常运行,但在6.0上仍不能创建表?

求大神指教
||收藏||
2个回答

按赞数排序
应该必须读取权限,6.0的电脑都必须去请求动态权限,去请求下动态权限试试java模拟器安卓版6.0,应该是写入这个权限
|

你是6.0 看看权限是否动态请求,本地操作必须文件的读写权限
|
如果想补充问题java模拟器安卓版6.0,请编辑问题;问题解决后请采纳答案。
抄袭、复制答案,以超过刷声望分或其它目的的行为,在CSDN问答是严格禁止的,一经发现立即封号。是之后呈现真正的技术了!
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/sanxing/article-142025-1.html
不让别的国家自由的美国
疯