![](/img/trans.png)
[英]openOrCreateDatabase in different class causes null pointer exception
[英]How to eliminate null pointer exception on OpenOrCreateDatabase(****) which is called by context object of my Registration class?
我正在使用一个简单的登录应用程序,在该应用程序中首先显示用户登录屏幕,在登录屏幕中,我有两个edittext让用户输入usrname和密码。 如果用户按下注册按钮,则应用程序会将用户带到注册页面,在该页面中,应将用户输入的四个字段(uname,pwd,Email Add,Postal Add)中的注册详细信息插入数据库。
在我的Registration类中,我通过传递Registration类的上下文创建了DatabaseOperation
类的对象,然后调用DatabaseOperation
的构造函数,因为该构造函数被称为上下文对象,该对象被复制到另一个名为mcontext
对象中。 在此名为Create_tbl
方法用于创建表之后,将被Create_tbl
。
在此方法中,我使用mcontext
对象as .......调用OpenOrCreateDatabase()
方法。
public void Create_Tbl()
{
db = mcontext.openOrCreateDatabase("Register.db", SQLiteDatabase.CREATE_IF_NECESSARY,null);
CREATE_TABLE_REGISTER = "CREATE TABLE IF NOT EXISTS "+table_name+"(u_id INTEGER PRIMARY KEY AUTOINCREMENT,u_name TEXT,u_eadd TEXT,u_pwd TEXT,u_padd TEXT)";
db.execSQL(CREATE_TABLE_REGISTER);
}
我的问题是:为什么我在openOrCreateDatabase()
处收到NullPointerException
。
另外我在另外两个地方也得到了NullPointerException
Create_Tbl();
DatabaseOperation dos = new DatabaseOperation(Registration.this);
这个问题可能有很多问题,但最引人注目的是mContext,请调试您的代码并检查它是否不为null。 然后调用方法openOrCreateDatabase(字符串路径,SQLiteDatabase.CursorFactory工厂),而不是openOrCreateDatabase(字符串路径,SQLiteDatabase.CursorFactory工厂,null)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.