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);
}
我正在使用 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);
}