2011-05-29 4 views
0

私のアプリケーションを実行するたびにこの例外が発生し続けます。何が原因かわからないここでは、この上でいくつかの背景情報です:この例外が発生する: "android.database.sqlite.SQLiteException:列がありません:_id:、コンパイル中に" _id列がある場合

  • 私は私のグローバル属性でこれを持っている:

    public static final String KEY_ID = "_id"; 
    
  • そして、これを、次の私はセットアップに、変数の文字列の私のデータベースの列があります。

    private static final String DATABASE_CREATE = 
          "create table sdCards (_id integer primary key autoincrement, " 
          + "arg0 text not null, " 
          + "arg1 integer not null, " 
            + "arg2 integer not null, " 
            + "arg3 integer not null, " 
            + "arg4 integer not null, " 
            + "arg5 integer not null);"; 
    
  • 最後に、データベースを次のように作成します。

    public void onCreate(SQLiteDatabase db) { 
        db.execSQL(DATABASE_CREATE); 
    } 
    

何が起こっているのか正確にはわかりません。私は明らかに_id列を持っています!どんな助けでも大歓迎です!

編集:ここに私のlogcatである

E/AndroidRuntime(24036): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mydomain.packagename/com.mydomain.packagename.MainClass}: android.database.sqlite.SQLiteException: no such column: _id: , while compiling: SELECT _id, arg0, arg1, arg2, arg3, arg4, arg5 FROM table_name 
E/AndroidRuntime(24036): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1741) 
E/AndroidRuntime(24036): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1757) 
E/AndroidRuntime(24036): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 
E/AndroidRuntime(24036): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:998) 
E/AndroidRuntime(24036): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(24036): at android.os.Looper.loop(Looper.java:126) 
E/AndroidRuntime(24036): at android.app.ActivityThread.main(ActivityThread.java:4002) 
E/AndroidRuntime(24036): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(24036): at java.lang.reflect.Method.invoke(Method.java:491) 
E/AndroidRuntime(24036): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
E/AndroidRuntime(24036): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
E/AndroidRuntime(24036): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(24036): Caused by: android.database.sqlite.SQLiteException: no such column: _id: , while compiling: SELECT _id, sdName, writes, modifications, moved, deletes FROM sdCards 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:147) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:368) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:131) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:95) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1534) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1414) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1370) 
E/AndroidRuntime(24036): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1450) 
E/AndroidRuntime(24036): at com.mydomain.packagename.DbAdapter.fetchAllSd(DbAdapter.java:131) 
E/AndroidRuntime(24036): at com.mydomain.packagename.MainClass.fillData(SDBenchmark.java:70) 
E/AndroidRuntime(24036): at com.mydomain.packagename.MainClass.onCreate(SDBenchmark.java:28) 
E/AndroidRuntime(24036): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
E/AndroidRuntime(24036): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1705) 
E/AndroidRuntime(24036): ... 11 more 
+0

この例外が発生するコードを表示し、LogCat-Outputを貼り付けてください。 –

+0

logcatを投げた – anujahooja

+0

fetchAllSd()とfillData()のコードを参照する必要があります。 – Squonk

答えて

3

(あなたのアプリをアンインストールしてよい)、その後、アプリを実行してみてデータベースを削除してみてください。これにより、データベースが再作成されます。 1つの可能性は、テーブルがすでに作成されていて、_idカラムが一度も作成されていないため、どこかでselectが失敗していることです。

関連する問題