Android 未使用 sqlite 现有数据库

Android sqlite existing database not used

我正在使用 Sqlite,但似乎找不到数据库....它实际上归咎于 table 但我不相信。

 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 中下载了这个数据库文件并尝试了一个 sqlite 编辑器,我可以找到 table 食物....所以它一定是代码。

所以我认为是找不到该文件。 这是我的数据库助手:

 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 中使用的实际文件 和数据库路径吗?(愚蠢的问题可能:)

上面代码中的问题是您在调用 super(...) 方法后将 DATABASE_FILENAME 设置为其他值。确保您的 DATABASE_FILENAME 将在构造函数外部初始化,或者您在同一个 class.

中将其声明为静态最终字符串

您的代码应如下所示。

static final String DATABASE_FILENAME="foods";

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