我正在玩Sqlite,但似乎没有找到数据库....它实际上归咎于桌子,但我不相信。
Error: android.database.sqlite.SQLiteException: no such table: food (code 1): , while compiling: SELECT * FROM food
这是我的数据库:/data/data/com.haze.purple.foodorcars/databases/foods.db 我已经使用rootExplorer进行了双重检查,并且文件存在。 我也在windows中下载了这个db文件并尝试了一个sqlite编辑器,我可以找到桌面食物....所以它必须是代码。
所以我相信它是以某种方式找不到的文件。 这是我的DatabaseHelper:
public CarsOrFoodDatabaseHelper(Context appContext) {
super(appContext, DATABASE_FILENAME, null, DB_VERS);
this.context = appContext;
DATABASE_FILENAME = context.getResources().getString(R.string.databasefile);
}
我应该为我的dbhelper使用context或applicationContext吗?
我可以打印实际文件,以及我的dbhelper中使用的db的路径吗?(可能是愚蠢的问题:)
答案 0 :(得分:1)
上面代码中的问题是你在调用super(...)方法后将DATABASE_FILENAME设置为其他值。确保您的DATABASE_FILENAME将在构造函数外部初始化,或者在同一个类中将其声明为静态最终字符串。
您的代码应如下所示。
static final String DATABASE_FILENAME="foods";
public CarsOrFoodDatabaseHelper(Context appContext) {
super(appContext, DATABASE_FILENAME, null, DB_VERS);
}