Android 请给我一些指导,我这里得到的错误是由SQL错误或缺少数据库引起的

Android 请给我一些指导,我这里得到的错误是由SQL错误或缺少数据库引起的,android,sql,sqlite,Android,Sql,Sqlite,我有一个错误: java.lang.RuntimeException:无法启动活动 ComponentInfo{snmn.sportsconnectapplication/snmn.sportsconnectapplication.MainActivity}: android.database.sqlite.SQLiteException:无此列:名称(代码 1) :,编译时:选择名称、本地纬度、本地经度, createdby、dateverified、verified FROM Locatio

我有一个错误:

java.lang.RuntimeException:无法启动活动 ComponentInfo{snmn.sportsconnectapplication/snmn.sportsconnectapplication.MainActivity}: android.database.sqlite.SQLiteException:无此列:名称(代码 1) :,编译时:选择名称、本地纬度、本地经度, createdby、dateverified、verified FROM Locations

错误代码:1(SQLITE_错误) 原因:SQL(查询)错误或缺少数据库。 (没有这样的列:name(代码1):,编译时:选择name、locallatitude、locallongitude、createdby、dateverified、verified FROM。) 地点)

我的代码

public static final int DATABASE_VERSION =1;

private static final String CREATE_TABLE = " CREATE TABLE " + 
    DbContract.TABLE_NAME + "(" +
    " _id integer primary key autoincrement, " +
        DbContract.NAME + "text, " +
        DbContract.LOCAL_LATITUDE + "text, " +
        DbContract.LOCAL_LONGITUDE + "text, " +
        DbContract.VERIFIED + "boolean, " +
        DbContract.DATE_VERIFIED + "date, " +
        DbContract.CREATED_BY +
        "text);";`

private static final String DROP_TABLE = "drop table if exists "+DbContract.TABLE_NAME;


public DbHelper(Context context){
    super(context,DbContract.DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db){
    db.execSQL(CREATE_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL(DROP_TABLE);
    onCreate(db);
}

public void saveToLocalDatabase(String name, String locallatitude, String locallongitude, String createdby, Date dateverified, Boolean verified, SQLiteDatabase database){
    ContentValues contentValues = new ContentValues();
    contentValues.put(DbContract.LOCAL_LATITUDE,locallatitude);
    contentValues.put(DbContract.LOCAL_LONGITUDE,locallongitude);
    contentValues.put(DbContract.NAME,name);
    contentValues.put(DbContract.CREATED_BY,createdby);
    contentValues.put (DbContract.DATE_VERIFIED, String.valueOf(dateverified));
    contentValues.put(DbContract.VERIFIED,verified);
    database.insert(DbContract.TABLE_NAME,null,contentValues);
}
public Cursor readFromLocalDatabase (SQLiteDatabase database){
    String[] projection = {DbContract.NAME,DbContract.LOCAL_LATITUDE,DbContract.LOCAL_LONGITUDE,DbContract.CREATED_BY,DbContract.DATE_VERIFIED,DbContract.VERIFIED};
    return (database.query(DbContract.TABLE_NAME,projection,null,null,null,null,null));

}

列名和类型之间需要空白。例如,改变

DbContract.NAME + "text, " +


解决这些问题后,您可以卸载并重新安装应用程序,以重新触发
onCreate()

我已经按照您所说的那样尝试了,但它不起作用::错误代码:1(SQLITE\u错误),原因是:SQL(查询)错误或缺少数据库。(在“.”附近:语法错误(代码1):,编译时:创建表位置(android.support.customtabs.customaction.ID INTEGER主键自动递增、名称文本、locallatitude文本、locallatitude文本、createdby文本、验证布尔值、日期验证日期);)
android.support.customtabs.customaction.ID
不属于这里-你搞乱了一些东西。它在代码中进行了一些更改,但只有在我卸载应用程序并再次运行时才起作用,但在我不卸载时不起作用it@season这是因为datasehelper的
onCreate
方法只会自动调用一次数据库的生存期(即,只有当数据库不存在时才调用它,然后创建数据库)。您发布的代码没有这个问题。用后续问题更新您的问题。
DbContract.NAME + " text, " +