簡體   English   中英

如何消除OpenOrCreateDatabase(****)上的空指針異常,該異常由我的Registration類的上下文對象調用?

[英]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

  1. Create_Tbl();
  2. DatabaseOperation dos = new DatabaseOperation(Registration.this);

這個問題可能有很多問題,但最引人注目的是mContext,請調試您的代碼並檢查它是否不為null。 然后調用方法openOrCreateDatabase(字符串路徑,SQLiteDatabase.CursorFactory工廠),而不是openOrCreateDatabase(字符串路徑,SQLiteDatabase.CursorFactory工廠,null)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM