Android 无法解析符号“;符号“U名称”+;“私人领域”;列“U名称”;从未使用过

Android 无法解析符号“;符号“U名称”+;“私人领域”;列“U名称”;从未使用过,android,sqlite,Android,Sqlite,我正在复制一个youtube视频教程,内容是关于android studio中SQLite数据库的登录注册(由Tech Academy提供),我遇到了以下错误: 有人能帮忙吗?非常感谢 DatabaseHelper类: package com.example.haryo.loginshits; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.databa

我正在复制一个youtube视频教程,内容是关于android studio中SQLite数据库的登录注册(由Tech Academy提供),我遇到了以下错误:

有人能帮忙吗?非常感谢

DatabaseHelper类:

package com.example.haryo.loginshits;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by Haryo on 09/01/2018.
 */

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = contacts.db;
    private static final String TABLE_NAME = contacts;
    private static final String COLUMN_ID = id;
    private static final String COLUMN_NAME = name;
    private static final String COLUMN_EMAIL = email;
    private static final String COLUMN_UNAME = uname;
    private static final String COLUMN_PASS = pass;
    SQLiteDatabase db;
    private static final String TABLE_CREATE = "create table contacts (id integer primary key not null auto_increment ," +
            " name text not null , email text not null , uname text not null , pass text not null);";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(TABLE_CREATE);
        this.db = db;
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String query = "DROP TABLE IF EXIST " +TABLE_NAME;
        db.execSQL(query);
        this.onCreate(db);
    }
}

列字段应该是字符串,使用双引号包装,如中所示

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "contacts.db";
    private static final String TABLE_NAME = "contacts";
    private static final String COLUMN_ID = "id";
    private static final String COLUMN_NAME = "name";
    private static final String COLUMN_EMAIL = "email";
    private static final String COLUMN_UNAME = "uname";
    private static final String COLUMN_PASS = "pass";
    SQLiteDatabase db;
    private static final String TABLE_CREATE = "create table "+TABLE_NAME+" ("+COLUMN_ID+" integer primary key not null auto_increment ," +COLUMN_NAME+
            " text not null , "+COLUMN_EMAIL+" text not null , "+COLUMN_UNAME+" text not null , "+COLUMN_PASS+" text not null);";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(TABLE_CREATE);
        this.db = db;
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String query = "DROP TABLE IF EXIST " +TABLE_NAME;
        db.execSQL(query);
        this.onCreate(db);
    }
}
将此更改为-:

private static final String DATABASE_NAME = contacts.db;
    private static final String TABLE_NAME = contacts;
    private static final String COLUMN_ID = id;
    private static final String COLUMN_NAME = name;
    private static final String COLUMN_EMAIL = email;
    private static final String COLUMN_UNAME = uname;
    private static final String COLUMN_PASS = pass;
致-:


在Android中,字符串值由“.”表示。

您只需在双引号中传递所有列和数据库名称。..loke this.=String TABLE_NAME=“contacts”该死,你说得对。我真是个白痴。。仅仅学习代码几个星期。很多人都感谢强硬
private static final String DATABASE_NAME = "contacts.db";
        private static final String TABLE_NAME = "contacts";
        private static final String COLUMN_ID = "id";
        private static final String COLUMN_NAME = "name";
        private static final String COLUMN_EMAIL = "email";
        private static final String COLUMN_UNAME = "uname";
        private static final String COLUMN_PASS = "pass";