我第一次尝试了一些数据库访问代码而且我遇到了一些错误 感谢一些帮助。这就是发生的事情:
1)我正在通过调用此构造函数创建一个新的SQLiteOpenHelper实例:
public MyDbOpenHelper(Context context) {
super(context, "some_name.db", null, 1);
}
以上实例是myHelper下面使用的变量
2)我正在调用myHelper.getReadableDatabase()
3)此时Android调用我的onCreate方法。我实现这个方法 开头如下:
public void onCreate(SQLiteDatabase db) {
db.setLocale(new Locale("en"));
//...
}
4)上述通话未完成。我得到以下转储:
BEGIN TRANSACTION设置区域设置失败
无法打开some_name.db进行写入(将尝试只读):
android.database.sqlite.SQLiteException:无法在事务中启动事务
在android.database.sqlite.SQLiteDatabase.native_setLocale(原生方法)
在android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1751)
在android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper ...
在android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper ....
看起来好像因为我想在数据库尚不存在时获取可读数据库,所以Android 尝试创建它并为setLocale创建一个可写的数据库...这就是原因 它抱怨“交易内交易”? 应该怎么做?
谢谢,任何帮助将不胜感激