![](/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.