Java Android应用程序停止工作-数据库信息提交不正确?

Java Android应用程序停止工作-数据库信息提交不正确?,java,android,database,sqlite,android-activity,Java,Android,Database,Sqlite,Android Activity,所以我开始着手android开发,并开始制作一个电话簿应用程序 我的应用程序有几个活动-主活动、添加联系人活动和查看所有活动 目前,每当我尝试添加联系人并按下save键时,android应用程序就会停止工作,我认为这是因为数据库中出现了空值,或者数据库中输入了错误的信息 只是想知道是否有人可以看一下,看看他们是否能发现我遗漏了什么 我认为问题出在第33行的这个活动上,因为TOAST消息没有出现,它只是在按下save data按钮时崩溃 package uk.ac.northumbria.secu

所以我开始着手android开发,并开始制作一个电话簿应用程序 我的应用程序有几个活动-主活动、添加联系人活动和查看所有活动

目前,每当我尝试添加联系人并按下save键时,android应用程序就会停止工作,我认为这是因为数据库中出现了空值,或者数据库中输入了错误的信息

只是想知道是否有人可以看一下,看看他们是否能发现我遗漏了什么

我认为问题出在第33行的这个活动上,因为TOAST消息没有出现,它只是在按下save data按钮时崩溃

package uk.ac.northumbria.securephonebook;

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

/**
* Created by Michael on 10/03/2017.
*/

public class DBHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = "DBHELPER";
public static final int DATABASE_VERSION = 1;

public static final String TABLE_NAME = "contact";
public static final String FIELD_ID = "_id";
public static final String FIELD_FIRSTNAME = "firstname";
public static final String FIELD_SURNAME = "surname";
public static final String FIELD_TELEPHONE = "telephone";
public static final String FIELD_EMAIL = "email";
public static final String QUERY_CREATE = "CREATE TABLE "+TABLE_NAME+" ( "+FIELD_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+FIELD_FIRSTNAME+" VARCHAR (100),"+FIELD_SURNAME+" VARCHAR (100), "+FIELD_TELEPHONE+" VARCHAR (100), "+FIELD_EMAIL+" VARCHAR (100)";

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

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL (QUERY_CREATE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
}
修复按钮问题后,现在生成以下内容
android.database.sqlite.SQLiteException:没有这样的表:contacts(代码1):,编译时:插入contacts(电子邮件、姓氏、名字、电话)值(?、、?、?)

查询的末尾缺少一个“')

改变这个

 public static final String QUERY_CREATE = "CREATE TABLE "+TABLE_NAME+" ( "+FIELD_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+FIELD_FIRSTNAME+" VARCHAR (100),"+FIELD_SURNAME+" VARCHAR (100), "+FIELD_TELEPHONE+" VARCHAR (100), "+FIELD_EMAIL+" VARCHAR (100)";


您可以发布崩溃日志吗?按请求添加了崩溃日志创建崩溃日志中指示的表时出现SQLException。发布database.java代码添加database.java和保存SQL创建查询的DPHelper创建表时会发生异常。数据库类不包含用于创建表的代码。发布正确的代码并停止以图像形式发布代码。编辑您的问题并在那里添加代码。感谢您的耐心-修复了它-无法相信它是如此微小的事情,我有missedHappy来帮助!如果答案对你有帮助,你可以投票并将答案标记为正确。低于15次代表,因此它还不允许我,但我会保存此内容,并确保在我可以的时候将代表发送给你。我想你无法解释为什么现在会发生这种情况:
 public static final String QUERY_CREATE = "CREATE TABLE "+TABLE_NAME+" ( "+FIELD_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+FIELD_FIRSTNAME+" VARCHAR (100),"+FIELD_SURNAME+" VARCHAR (100), "+FIELD_TELEPHONE+" VARCHAR (100), "+FIELD_EMAIL+" VARCHAR (100) )";