无法打开SQLiteDatabase?

时间:2014-10-25 01:03:54

标签: java android android-5.0-lollipop

我正在尝试为小型企业编写数据库以处理预订,它是使用21 API for Lollipop编写的,我已经在下面添加了DBAdapter和创建预订类。当我尝试点击提交时,我收到此错误(StackOverflow赢了,让我发布整个错误,但这里有一些 - >
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteOpenHelper.getWritableDatabase()' on a null object reference at net.stein13.reserveit.DBAdapter.open(DBAdapter.java:53) at net.stein13.reserveit.NewReservation.submitReservation(NewReservation.java:29) 我正试着和我的AP计算机科学老师一起解决这个问题,但她对Android的了解还不足以帮助我解决这个问题。

新预订课程 - http://pastebin.com/ALn9Q2sg DBAdapter类 - http://pastebin.com/07PZSiT1

任何帮助将不胜感激!!提前谢谢!

1 个答案:

答案 0 :(得分:2)

发生错误是因为您从未初始化DBHelper成员变量。但是,由于DBAdapter扩展了SQLiteOpenHelper,因此根本不需要DBHelper。这是因为每个DBAdapter都是SQLiteOpenHelper。这意味着您可以直接在任何SQLiteOpenHelper上调用所有DBAdapter方法。例如,您应该将open()方法更改为

db = getWritableDatabase();

您还应该完全删除close()SQLiteOpenHelper已经有close()方法,可以为您完成所有工作。