2012-03-21 93 views
1

IM在我EhActivity類剛開一個NullPointerException異常而打開數據庫NullPointerException異常openOrCreateDatabase的Android

public class EHActivity extends Activity { 
ArrayList<String>ques= new ArrayList<String>(); 
ArrayList<String>ans=new ArrayList<String>(); 
SQLiteDatabase db2; 

    public ArrayList<String> getQues() 
    { 
    db2=openOrCreateDatabase("interview.db", MODE_PRIVATE, null); 
    db2.execSQL("create table eh (qid int primary key,ques varchar,ans char)"); 
     db2.execSQL("insert into subject values(1,'What is an exception?','A1 '))"); 
    db2.execSQL("insert into subject values(2,'What is error?','A2 '))"); 
     Cursor c=db2.rawQuery("select * from eh",null); 
    while(c.moveToNext()) 
    { 
    ques.add(c.getString(1)); 
    } 
    return ques; 
    } 
} 

日誌貓的觀點是:

03-21 14:06:15.910:E/AndroidRuntime(955 ):java.lang.NullPointerException 03-21 14:06:15.910:E/AndroidRuntime(955):在android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203) 03-21 14:06:15.910:E/AndroidRuntime(955):在interview.android.EHActivity.getQues(EHActivity.java:19)

+0

我懷疑你在調用onCreate()之前調用'getQues()'。從'EHActivity'的構造函數) - 你的活動上下文沒有初始化然後 – zapl 2012-03-21 09:08:36

+0

@zapl我已經嘗試過使用onCreate()函數,但同樣的錯誤即將到來。 – shubh 2012-03-21 09:43:06

回答

1

儘量不要發送空.. openOrCreateDatabase有此另一種方法..

db2=openOrCreateDatabase("interview.db", MODE_PRIVATE); 

openDatabase("interview.db", MODE_PRIVATE, SQLiteDatabase.CREATE_IF_NECESSARY) 
+0

沒有它的不工作 – shubh 2012-03-21 09:25:27

+0

@shubh你在logcat中得到相同的錯誤? – Joe 2012-03-21 09:26:45

+0

否該功能不允許兩個參數第三個參數工廠必須通過,因此該項目將不會運行。 – shubh 2012-03-21 09:41:20

0
public class Database_creat { 
    private static final String DATABASE_NAME = "interview.db"; 
    public static final String DATABASE_TABLE_CATEGORY = "category"; 
    public static final String DATABASE_TABLE_TODO_LIST = "todo_list"; 
    private static final int DATABASE_VERSION = 1; 
    public ArrayList<ModelToDO> list; 


    private DataBaseHelper mDbhelper; 
    private SQLiteDatabase mDb; 

    Context mContext; 
    private static final String DATABASE_CREATE_CATEGORY = "create table category(id integer primary key autoincrement , " 
      + "category text not null);"; 
    private static final String DATABASE_CREATE_TODO_LIST = "create table todo_list(id integer primary key autoincrement , " 
      + "title text not null,description text not null,category text not null, due_date Date not null,alarm_time text ,alarm_set text,priority text,parform Boolean);"; 

    private static class DataBaseHelper extends SQLiteOpenHelper { 

     DataBaseHelper(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
      // TODO Auto-generated constructor stub 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) { 
      // TODO Auto-generated method stub 
      db.execSQL(DATABASE_CREATE_CATEGORY); 
      db.execSQL(DATABASE_CREATE_TODO_LIST); 
     } 

     //Delete All todo_list Table info 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
      // TODO Auto-generated method stub 
      db.execSQL("DROP TABLE IF EXISTS submit"); 
      onCreate(db); 
     } 
    } 

    public Database_creat(Context context) { 
     this.mContext = context; 
    } 

    public Database_creat Open() throws SQLException { 
     mDbhelper = new DataBaseHelper(mContext); 
     mDb = mDbhelper.getWritableDatabase(); 
     return this; 

    } 

    public void close() { 
     mDbhelper.close(); 
    } 

    //Add new Category name 
    public long insertinfo(String cate) { 
     ContentValues con = new ContentValues(); 
     con.put("category", cate); 
     return mDb.insert(DATABASE_TABLE_CATEGORY, null, con); 
    } 


} 

這一個在使用的查詢創建數據庫

0

HI Shubh嘗試下面的代碼..

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 


db2=openOrCreateDatabase("sdcard/yourappfolder/interview.db", MODE_PRIVATE, null); 
+0

它不工作相同的錯誤即將到來.. – shubh 2012-03-21 09:42:04

+0

db2.execSQL(「插入主題值(1,'什麼是異常?' ,'A1'))「); 在這裏你正在關閉3個支架,而你只打開兩個支架。 刪除從上次開始的第二個括號。 – Pinakin 2012-03-21 10:21:49

相關問題