创建数据库时出现Android空指针异常
我有一个示例应用程序,它创建一个数据库、一个表并插入一行值 这是我的创建数据库时出现Android空指针异常,android,nullpointerexception,sqlite,Android,Nullpointerexception,Sqlite,我有一个示例应用程序,它创建一个数据库、一个表并插入一行值 这是我的MainActivity.java: public class MainActivity extends Activity { protected static final android.content.Context Context = null; public String ReadingMode=""; @Override protected void onCreate(Bundle savedInstanceSta
MainActivity.java
:
public class MainActivity extends Activity {
protected static final android.content.Context Context = null;
public String ReadingMode="";
@Override
protected void onCreate(Bundle savedInstanceState) {
SQLiteDatabase sampleDB = Context.openOrCreateDatabase("WaterElectricityReading", MODE_WORLD_READABLE, null);
sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
"SampleTable " +
" (LastName VARCHAR, FirstName VARCHAR," +
" Country VARCHAR, Age INT(3));");
sampleDB.execSQL("INSERT INTO " +
"SampleTable " +
" Values ('Makam','sample','India',25);");
sampleDB.close();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
当我逐行调试时,空指针异常
在行附近引发:
SQLiteDatabase sampleDB = Context.openOrCreateDatabase("WaterElectricityReading", MODE_WORLD_READABLE, null);
我看到sampleDB
为空,并且没有创建Database
我的代码有什么问题吗?您正在用null初始化您的上下文
protected static final android.content.Context Context = null;
因此,当您使用空上下文时,它将抛出一个NPE,您可以使用活动上下文设置上下文,然后使用上下文
Context = MainActivity.this;
还是用这个
SQLiteDatabase sampleDB = this.openOrCreateDatabase("WaterElectricityReading", MODE_WORLD_READABLE, null);
您正在用null初始化您的上下文
protected static final android.content.Context Context = null;
因此,当您使用空上下文时,它将抛出一个NPE,您可以使用活动上下文设置上下文,然后使用上下文
Context = MainActivity.this;
还是用这个
SQLiteDatabase sampleDB = this.openOrCreateDatabase("WaterElectricityReading", MODE_WORLD_READABLE, null);
您正在初始化为
protectedstatic final android.content.Context Context=null代码>
然后将其用作Context.openOrCreateDatabase(“WaterElectricityReading”,MODE\u WORLD\u READABLE,null)代码>
它将生成明显的空指针异常。您正在初始化为受保护的静态最终android.content.Context Context=null代码>
然后将其用作Context.openOrCreateDatabase(“WaterElectricityReading”,MODE\u WORLD\u READABLE,null)代码>
它将为明显的错误生成空指针异常。Repalce
SQLiteDatabase sampleDB = Context.openOrCreateDatabase("WaterElectricityReading", MODE_WORLD_READABLE, null);
与
原因:
活动
是上下文
的子类,因此您可以使用此
openOrCreateDatabase
不是静态方法,因此不能使用类名调用它
修理
SQLiteDatabase sampleDB = Context.openOrCreateDatabase("WaterElectricityReading", MODE_WORLD_READABLE, null);
与
原因:
活动
是上下文
的子类,因此您可以使用此
openOrCreateDatabase
不是静态方法,因此不能使用类名调用它