【问题标题】:NullPointerException getting writabledatabase after adding Fragment添加 Fragment 后获取可写数据库的 NullPointerException
【发布时间】:2014-04-04 16:11:38
【问题描述】:

我一直在转换我的应用程序以使用片段来增加一些灵活性,但是在这样做时,当我尝试对数据库进行更新时,我得到了 NullPointerException。

03-03 09:26:40.610: E/AndroidRuntime(20613): java.lang.NullPointerException
03-03 09:26:40.610: E/AndroidRuntime(20613):    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
03-03 09:26:40.610: E/AndroidRuntime(20613):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)

这是在我的Fragment.java中的save.setOnClickListener,onClick

db.getWritableDatabase();
                db.addGasLog(new gasLog(pricePerGallonInt, gallonsInt, odometerInt, todayString, fill, commentsString, totalSpent));

当我从我的普通 NewRecord.java(预添加片段)执行此操作时,我向数据库添加条目没有问题。

有什么想法吗?

编辑:在打开片段之前,我已经阅读了一些关于人们在 MainActivity.java 中打开连接的内容,如果您需要查看那里的代码,请告诉我。

EDIT2:

这是我初始化数据库的地方

final MySQLiteHelper db = new MySQLiteHelper(mContext);

【问题讨论】:

  • 请告诉我们你在哪里以及如何初始化db变量
  • 一切就绪! - 最终 MySQLiteHelper db = new MySQLiteHelper(mContext);
  • 在调用方法之前检查db的值
  • 我的 sdk 中没有 SQLiteOpenHelper.getDatabaseLocked 的踪迹。是MySQLiteHelper的方法吗?
  • 这不是我帮手的方法。不确定它的实际来源。

标签: java android nullpointerexception fragment


【解决方案1】:

片段未正确获取上下文。我必须使用getActivity() 来获取适当的上下文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    相关资源
    最近更新 更多