用于在Android中的SQLite中创建表的运行时异常

用于在Android中的SQLite中创建表的运行时异常,android,Android,日志: 用逗号分隔这些值,如 10-09 13:41:49.807: E/SQLiteLog(16458): (1) near "AUTOINCREMENTuser_name": syntax error 10-09 13:41:49.824: E/AndroidRuntime(16458): FATAL EXCEPTION: main 10-09 13:41:49.824: E/AndroidRuntime(16458): java.lang.RuntimeException: Unable

日志:


用逗号分隔这些值,如

10-09 13:41:49.807: E/SQLiteLog(16458): (1) near "AUTOINCREMENTuser_name": syntax error
10-09 13:41:49.824: E/AndroidRuntime(16458): FATAL EXCEPTION: main
10-09 13:41:49.824: E/AndroidRuntime(16458): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adjetter.databasestorage/com.adjetter.databasestorage.MainActivity}: android.database.sqlite.SQLiteException: near "AUTOINCREMENTuser_name": syntax error (code 1): , while compiling: CREATE TABLE user_details_table (id INTEGER PRIMARY KEY AUTOINCREMENTuser_name TEXT NOT NULL password TEXT NOT NULLsex TEXT NOT NULL email TEXT NOT NULL remember_me TEXT );
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.app.ActivityThread.access$600(ActivityThread.java:162)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.os.Handler.dispatchMessage(Handler.java:107)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.os.Looper.loop(Looper.java:194)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.app.ActivityThread.main(ActivityThread.java:5371)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at java.lang.reflect.Method.invokeNative(Native Method)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at java.lang.reflect.Method.invoke(Method.java:525)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at dalvik.system.NativeStart.main(Native Method)
10-09 13:41:49.824: E/AndroidRuntime(16458): Caused by: android.database.sqlite.SQLiteException: near "AUTOINCREMENTuser_name": syntax error (code 1): , while compiling: CREATE TABLE user_details_table (id INTEGER PRIMARY KEY AUTOINCREMENTuser_name TEXT NOT NULL password TEXT NOT NULLsex TEXT NOT NULL email TEXT NOT NULL remember_me TEXT );
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:886)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:497)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at com.adjetter.databasestorage.DBHelper.onCreate(DBHelper.java:38)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at com.adjetter.databasestorage.MainActivity.onCreate(MainActivity.java:60)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.app.Activity.performCreate(Activity.java:5122)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1084)
10-09 13:41:49.824: E/AndroidRuntime(16458):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
10-09 13:41:49.824: E/AndroidRuntime(16458):    ... 11 more

还可以在每个逗号后面设置一个空格。

您需要用逗号分隔列声明

 " (id INTEGER PRIMARY KEY AUTOINCREMENT, "
    + "user_name TEXT NOT NULL, "

注:为了避免下次被否决,你可能想问一个问题。这比转储代码和日志更友好。

id INTEGER主键自动递增+用户名文本非空在用户名前设置一个空格。我建议您锁定该语句并在sqlite浏览器中尝试。然后看看你在自动递增附近的错误user_name:下次你写问题时。。。如果你希望有人花时间回答你的问题,那就找时间和体面地“问”一个问题,就像粘贴错误日志一样。
 " (id INTEGER PRIMARY KEY AUTOINCREMENT, "
    + "user_name TEXT NOT NULL, "
public static final String CREATE_USER_DETAILS_TABLE = " CREATE TABLE "
    + "user_details_table (" 
    + "id INTEGER PRIMARY KEY AUTOINCREMENT, "
    + "user_name TEXT NOT NULL, " 
    + "password TEXT NOT NULL, "
    + "sex TEXT NOT NULL, " 
    + "email TEXT NOT NULL, "
    + "remember_me TEXT ); ";