每当我尝试从数据库中写入或读取时,我都会在两个活动中遇到相同的错误。
Java.lang.NullPointerException
调用此方法时会抛出错误:
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
此课程包含哪些内容:
public class DriverController {
// Database fields
private Context context;
private SQLiteDatabase database;
private MySQLiteHelper dbHelper;
private String[] allColumns = { MySQLiteHelper.PROFILE_COLUMN_ID,
MySQLiteHelper.PROFILE_COLUMN_NAME, MySQLiteHelper.PROFILE_COLUMN_DRIVERNO };
public DriverController() {
dbHelper = new MySQLiteHelper(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
MySQLiteHelper类基于本教程。 http://www.vogella.com/tutorials/AndroidSQLite/article.html
尽管如此,我们将非常感谢您提供的任何帮助。我已经落后了。
答案 0 :(得分:2)
在这一行dbHelper = new MySQLiteHelper(context);
中你传递了一个空上下文,这导致getWritableDatabase()
抛出一个NullPointerException
。
您需要有效的背景。
答案 1 :(得分:2)
在
dbHelper = new MySQLiteHelper(context);
实例context
为null,因此在使用它之前初始化context
对象或将context
作为参数从调用activty传递为
public DriverController(Context context) {
dbHelper = new MySQLiteHelper(context);
}
您必须将context
从调用actvity
传递给DriverController
构造函数,因为context
仅在活动类中可用
有关参考,请参阅您提供的link中使用的CommentsDataSource
类。