gpt4 book ai didi

android - 无法访问数据库 - 上下文始终为空

转载 作者:行者123 更新时间:2023-11-30 04:22:54 26 4
gpt4 key购买 nike

我是 Android 新手,刚刚开始使用我的第一个应用程序。任何帮助是极大的赞赏。我创建了一个 dbhelper 类,但它因 NullPointer 异常而失败。当我尝试调试时,上下文总是显示为空,因此 mDatabase 也为空。

以下是我的代码。

public class PharmaExpDBHelper {

static final String DB_NAME = "pharmaApp.db";
static final int VERSION = 1;
private SQLiteDatabase db;
private Context context;

public PharmaExpDBHelper(Context context) {
this.context = context;
OpenHelper openHelper = new OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();
}


private static class OpenHelper extends SQLiteOpenHelper {

OpenHelper(Context context) {
super(context, DB_NAME, null, VERSION);
}

@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL("CREATE TABLE pharmacy_list(id integer primary key autoincrement, name text);");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(PharmaExpDBHelper.class.getName(),
"Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS" + " pharmacy_list");
onCreate(db);
}


}

}

最佳答案

我没有发现发布的代码有任何明显的错误。既然你说 Context 是空的,你应该确保你实例化这个类的地方正在传递一个有效的 Context 实例。

如果有人传入 null Context 作为完整性检查,则抛出 IllegalArgumentException 可能会有所帮助。

关于android - 无法访问数据库 - 上下文始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8997734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com