【发布时间】:2020-10-30 08:17:06
【问题描述】:
我有一个使用 SQLite 数据库的应用程序,但在一半的 android 设备上,调用它时出现问题,我收到此错误。 虽然我正在使用这些行:
DatabaseHelper databaseHelper = new DatabaseHelper(getActivity());
SQLiteDatabase database = databaseHelper.getWritableDatabase();
databaseHelper.onCreate(database);
启动我的数据库的代码,仍然出现此错误:
Fatal Exception: java.lang.NullPointerException
Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.content.Context.openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase$CursorFactory, android.database.DatabaseErrorHandler)' on a null object reference`.
如果你能帮我解决这个问题,我会很高兴。
以下代码适用于我的数据库助手类: ` 公共类 DatabaseHelper 扩展 SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, "foods_database.db", null, 2);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists foods(sFoodName text, sUniteIndex text)");
}
public void deleteFoodsTable(SQLiteDatabase database){
database.execSQL("drop table if exists foods");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}`
这些代码行用于启动数据库助手并将项目添加到数据库:
DatabaseHelper databaseHelper = new DatabaseHelper(getActivity());
SQLiteDatabase database = databaseHelper.getWritableDatabase();
databaseHelper.onCreate(database);
ContentValues values = new ContentValues();
for (int i = 0; i < foodsList.size() ; i++){
values.put("sFoodName" , foodsList.get(i).getFoodName());
values.put("sUniteIndex" , TextUtils.join("," , foodsList.get(i).getUnitesIndexArray()));
database.insert("foods" , null , values);
}
database.close();
【问题讨论】:
标签: java android sqlite android-sqlite sqliteopenhelper