Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android getWritableDatabase()抛出NullPointerException_Android_Database_Nullpointerexception - Fatal编程技术网

Android getWritableDatabase()抛出NullPointerException

Android getWritableDatabase()抛出NullPointerException,android,database,nullpointerexception,Android,Database,Nullpointerexception,我正在尝试用android上的数据库保存数据 我已经编写了处理数据库的类,就像我在几个例子中看到的那样 公共类MyDatabase扩展了SQLiteOpenHelper { 私人餐桌用户; 公共MyDatabase(上下文) { super(上下文、数据库名称、null、数据库版本); } public void onCreate(SQLiteDatabase db) { users.CreateTable(); } @凌驾 public void onUpgrade(SQLiteDatabas

我正在尝试用android上的数据库保存数据

我已经编写了处理数据库的类,就像我在几个例子中看到的那样

公共类MyDatabase扩展了SQLiteOpenHelper
{
私人餐桌用户;
公共MyDatabase(上下文)
{
super(上下文、数据库名称、null、数据库版本);
}
public void onCreate(SQLiteDatabase db)
{
users.CreateTable();
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion)
{
}
}
但是当我尝试初始化变量
users
时,如下所示:

users=新表(getWritableDatabase());
我得到了
NullPointerException
,它不是meter,在那里。。。我试着:

公共MyDatabase(上下文)
{
super(上下文、数据库名称、null、数据库版本);
users=新表(getWritableDatabase());
}

public void onCreate(SQLiteDatabase db)
{
users=新表(getWritableDatabase());
users.CreateTable();
}
但是当我调用函数
getWritableDatabase()

我必须确保函数
CreateTable
不会是静态的,因为它会放置初始值

我哪里错了?

替换

public void onCreate(SQLiteDatabase db)
{
    users = new Table(getWritableDatabase());
    users.CreateTable();
}

当您在onCreate中时,您的可写数据库正在创建过程中。
这里的onCreate方法与活动中的不同。onCreate for SQLiteOpenHelper仅在第一次创建数据库时被调用。

Ok,那么当数据库不是新的时,我将如何初始化变量?我编写的一个类包含对数据库表的操作
public void onCreate(SQLiteDatabase db)
{
    users = new Table(db);
    users.CreateTable();
}