我们正在尝试在Android上开发应用程序。我们正在使用SQLite数据库和手机上的
SQLiteException:没有这样的表。
它在模拟器上工作正常。
任何人都可以就此提供任何意见吗?
答案 0 :(得分:15)
如果您没有正确指定数据库文件名,我相信它会回退到创建一个空数据库。这通常是“找不到桌子”的原因。检查路径和数据库文件名。
答案 1 :(得分:6)
我遇到了同样问题的不同风格。
我尝试插入时出现no such table
错误。
在插入之前,代码正在调用
mDb = mDbHelper.getWritableDatabase();
getWritableDatabase()
,第一次调用时会调用onCreate()
我有我的SQL查询在这个oncreate方法
中创建表public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
Log.v("INFO1","creating db");
//Toast.makeText(mCtx, "created", Toast.LENGTH_SHORT).show();
}
所以对我来说发生的事情是,db
在应用程序首次运行时成功创建,但由于其他一些错误而没有表。
稍后,只要运行应用程序,就永远不会调用onCreate()
,因为db
已经存在,因此没有创建表,因此所有其他SQL命令都失败了。
所以我从onCreate()
开始创建表格,现在正在运作
答案 2 :(得分:2)
有些人已经能够使用here提到的步骤解决问题。在我看来,Android 2.2的某些版本存在此问题。我已将此更改合并到我的代码中,但我仍在寻找Beta测试人员,看看它是否真的有效。