我正在尝试为小型企业编写数据库以处理预订,它是使用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
任何帮助将不胜感激!!提前谢谢!
答案 0 :(得分:2)
发生错误是因为您从未初始化DBHelper
成员变量。但是,由于DBAdapter
扩展了SQLiteOpenHelper
,因此根本不需要DBHelper
。这是因为每个DBAdapter
都是SQLiteOpenHelper
。这意味着您可以直接在任何SQLiteOpenHelper
上调用所有DBAdapter
方法。例如,您应该将open()
方法更改为
db = getWritableDatabase();
您还应该完全删除close()
。 SQLiteOpenHelper
已经有close()
方法,可以为您完成所有工作。