首页 > 解决方案 > 调用.query时出现android.database.sqlite.SQLiteException

问题描述

我只在实时版本上遇到这个问题,在模拟器上测试时一切正常。这是我的代码

public void onCreate(SQLiteDatabase db) {

    String SQL_CREATE_NUTRI_TABLE = "CREATE TABLE " + TABLE_NAME_USER_DATA + "(" +
            _ID_USER_DATA + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
            COLUMN_USER_NAME + " TEXT, " +
            COLUMN_USER_GENDER + " TEXT, " +
            COLUMN_USER_HEIGHT + " TEXT, " +
            COLUMN_USER_WEIGHT + " TEXT, " +
            COLUMN_USER_WEIGHT_DATE + " TEXT, " +
            COLUMN_USER_MUSCLE_MASS + " TEXT, " +
            COLUMN_USER_MUSCLE_MASS_DATE + " TEXT, " +
            COLUMN_USER_FAT_MASS + " TEXT, " +
            COLUMN_USER_FAT_MASS_DATE + " TEXT, " +
            COLUMN_USER_ACTIVITY + " TEXT, " +
            COLUMN_USER_GOAL + " TEXT, " +
            COLUMN_USER_PHONE + " TEXT, " +
            COLUMN_USER_AGE_MILLIS + " TEXT, " +
            COLUMN_USER_EMAIL + " TEXT, " +
            TOKEN + " TEXT, " +
            TOKEN_TIME + " TEXT, " +
            COLUMN_USER_PASSWORD + " TEXT);";

    db.execSQL(SQL_CREATE_NUTRI_TABLE);

}

错误在 db.execSQL 行中

我已经查看了我需要的专栏,它们都在那里,因为我在其他答案中看到有些人忘记添加所有这些

编辑

这是我得到的错误

Caused by: android.database.sqlite.SQLiteException:

   at android.database.sqlite.SQLiteConnection.nativePrepareStatement (Native Method)

  at android.database.sqlite.SQLiteConnection.acquirePreparedStatement (SQLiteConnection.java:986)
   at android.database.sqlite.SQLiteConnection.prepare (SQLiteConnection.java:593)
   at android.database.sqlite.SQLiteSession.prepare (SQLiteSession.java:590)
   at android.database.sqlite.SQLiteProgram.<init> (SQLiteProgram.java:61)
   at android.database.sqlite.SQLiteStatement.<init> (SQLiteStatement.java:33)
   at android.database.sqlite.SQLiteDatabase.executeSql (SQLiteDatabase.java:1812)
   at android.database.sqlite.SQLiteDatabase.execSQL (SQLiteDatabase.java:1740)
   at com.app.khali.nutriplan.userData.userDataHelper.onCreate (userDataHelper.java:64)
   at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked (SQLiteOpenHelper.java:412)
   at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase (SQLiteOpenHelper.java:341)
  at com.app.khali.nutriplan.userData.userDataProvider.query (userDataProvider.java:54)
  at com.app.khali.nutriplan.startUpPage.onCreate (startUpPage.java:121)
  at android.app.Activity.performCreate (Activity.java:7967)
  at android.app.Activity.performCreate (Activity.java:7956)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1307)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3487)

标签: javaandroidsqlite

解决方案


如果表已经存在,请将您的查询更改为不创建表。

CREATE TABLE IF NOT EXISTS + TABLE_NAME_USER_DATA + "(" +

并检查。


推荐阅读