Android sqlite现有数据库未使用

时间:2015-01-04 15:12:16

标签: android sqlite

我正在玩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的路径吗?(可能是愚蠢的问题:)

1 个答案:

答案 0 :(得分:1)

上面代码中的问题是你在调用super(...)方法后将DATABASE_FILENAME设置为其他值。确保您的DATABASE_FILENAME将在构造函数外部初始化,或者在同一个类中将其声明为静态最终字符串。

您的代码应如下所示。

static final String DATABASE_FILENAME="foods";

public CarsOrFoodDatabaseHelper(Context appContext) {
    super(appContext, DATABASE_FILENAME, null, DB_VERS);
}