2013-03-18 75 views
0

在創建數據庫我總是收到此錯誤:sqlite的錯誤的Android

java.lang.IllegalArgumentException異常:版本必須> =在android.database.sqlite.SQLiteOpenHelper

版本0

任何想法如何解決這個問題。我的代碼如下

public class DatabaseHandler extends SQLiteOpenHelper{ 

    private static final int DATABASE_VERSION = 1; 
    private static final String DATABASE_NAME = "Exm"; 
    private static final String KEY_ID   = "id"; 
    private static final String KEY_USERID  = "userId"; 
    private static final String KEY_USERNAME = "userName"; 
    private static final String KEY_LOGINSTATUS = "userLoginStatus"; 

    public DatabaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    public void onCreate(SQLiteDatabase db) { 
     String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_USER + "(" 
             + KEY_ID + " INTEGER PRIMARY KEY ," 
             + KEY_USERID + " VARCHAR (32) ," 
             + KEY_USERNAME + " VARCHAR (50)," 
             + KEY_LOGINSTATUS + " INTEGER" + ")"; 
     db.execSQL(CREATE_CONTACTS_TABLE); 
    } 

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER); 
     // Create tables again 
     onCreate(db); 
    } 
} 
+1

請發表日誌。 – 2013-03-18 06:59:29

+0

threadid = 1:以未捕獲的異常退出的線程(組= 0x409961f8) 03-18 12:30:35.077:E/AndroidRuntime(1026):致命例外:主要 03-18 12:30:35.077:E/AndroidRuntime 1026):java.lang.IllegalArgumentException:版本必須> = 1,在android.database.sqlite.SQLiteOpenHelper中爲0 03-18 12:30:35.077:E/AndroidRuntime(1026):\t。 (SQLiteOpenHelper.java:90) 03-18 12:30:35.077:E/AndroidRuntime(1026):\t at android.database.sqlite.SQLiteOpenHelper。 (SQLiteOpenHelper.java:69) 03-18 12:30:35.077: – 2013-03-18 07:02:53

+0

嗨Anil M歡迎來到stackoverflow。每當你遇到一些錯誤時,在你的問題中發佈錯誤日誌,你將得到適當的迴應。 – 2013-03-18 07:04:15

回答

1

確保你已經聲明TABLE_USER。我在上面的代碼中看不到它。

+0

這不是問題..我已經聲明..但忘記添加上面的代碼 – 2013-03-18 07:04:28

+0

嘗試清理項目,並再次運行。 – 2013-03-18 08:07:36

0

你不應該在onUpgrade()中調用onCreate(db)。

如果要重新使用代碼,請將該代碼放在其他位置,然後從onCreate和onUpgrade調用該方法。

 
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_USER + "(" 
            + KEY_ID + " INTEGER PRIMARY KEY ," 
            + KEY_USERID + " VARCHAR (32) ," 
            + KEY_USERNAME + " VARCHAR (50)," 
            + KEY_LOGINSTATUS + " INTEGER" + ")"; 
    db.execSQL(CREATE_CONTACTS_TABLE); 

保持這段代碼在另一方法中,和調用該方法從的onCreate和onUpgrade方法內。

+0

可以請你解釋一下嗎? – 2013-03-18 08:49:32

+0

好吧,讓我試試... – 2013-03-18 08:58:16

+0

沒辦法..拋出同樣的錯誤... – 2013-03-18 09:13:27