Android应用程序崩溃的调用SQLiteHelper [英] Android app crashing on calling SQLiteHelper

查看:133
本文介绍了Android应用程序崩溃的调用SQLiteHelper的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在使用本教程的某些部分,但我不得不做出一些变化不大和手机我的应用程序崩溃。有在code没有错误,但!
http://www.vogella.com/articles/AndroidSQLite/article.html

 公共类SQLiteDbHelper扩展SQLiteOpenHelper {
    公共静态最后弦乐TABLE_NAME =表;
    公共静态最后弦乐COLUMN_NAME_SP =SP;
    公共静态最后弦乐COLUMN_NAME_ST =ST;    //如果更改了数据库架构,则必须增加数据库版本。
    公共静态最终诠释DATABASE_VERSION = 1;
    公共静态最后弦乐DATABASE_NAME =SPT.db;    私有静态最后弦乐DATABASE_CREATE =
        CREATE TABLE+ TABLE_NAME +
         (+
        COLUMN_NAME_SP +文本不为空+
        COLUMN_NAME_ST +文本不为空+
        );    公共SQLiteDbHelper(上下文的背景下){
        超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
    }    @覆盖
    公共无效的onCreate(SQLiteDatabase数据库){
        database.execSQL(DATABASE_CREATE);
    }    @覆盖
    公共无效onUpgrade(SQLiteDatabase数据库,诠释oldVersion,诠释静态网页){
      Log.w(SQLiteDbHelper.class.getName(),
          + oldVersion +到从版本升级数据库
              + NEWVERSION +,这将摧毁所有旧数据);
      database.execSQL(DROP TABLE IF EXISTS+ TABLE_NAME);
    }}

然后,后来,我有这样的code为按钮点击的方法:

 公共无效保存(查看视图){
            串ST = editTextSt.getText()的toString()。
            。字符串SP = editTextSp.getText()的toString();       //这是什么使[开始]我的应用程序崩溃
            SQLiteDbHelper DATABASE2 =新SQLiteDbHelper(本);
    SQLiteDatabase数据库= database2.getWritableDatabase();
       //这是什么让我的应用程序崩溃[完]    ContentValues​​值=新ContentValues​​();
    values​​.put(SQLiteDbHelper.COLUMN_NAME_SP,SP);
    values​​.put(SQLiteDbHelper.COLUMN_NAME_ST,ST);
    长insertId = database.insert(SQLiteDbHelper.TABLE_NAME,空,价值观);}


解决方案

您忘了把逗号(,)后,每列名在创建表查询更改为:

 私有静态最后弦乐DATABASE_CREATE =
        CREATE TABLE+ TABLE_NAME +
         (+
        COLUMN_NAME_SP +文本不为空,+
        COLUMN_NAME_ST +文本不为空+
        );;

I have been using this tutorial for some part, but I had to make some little changes and my app crashes on mobile phone. There are no errors in code, though! http://www.vogella.com/articles/AndroidSQLite/article.html

public class SQLiteDbHelper extends SQLiteOpenHelper {
    public static final String TABLE_NAME = "table";
    public static final String COLUMN_NAME_SP = "SP";
    public static final String COLUMN_NAME_ST = "ST";

    // If you change the database schema, you must increment the database version.
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "SPT.db";

    private static final String DATABASE_CREATE =
        "CREATE TABLE " + TABLE_NAME + 
         " (" +
        COLUMN_NAME_SP + " text not null" +
        COLUMN_NAME_ST + " text not null" +
        " )";

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

    @Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(DATABASE_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
      Log.w(SQLiteDbHelper.class.getName(),
          "Upgrading database from version " + oldVersion + " to "
              + newVersion + ", which will destroy all old data");
      database.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
    }

}

And then, later on, I have this code for a method for button click:

            public void Save(View view){
            String st = editTextSt.getText().toString();
            String sp = editTextSp.getText().toString();

       //this is what makes my app crash [beginning]
            SQLiteDbHelper database2 = new SQLiteDbHelper(this);
    SQLiteDatabase database = database2.getWritableDatabase();
       //this is what makes my app crash [end]

    ContentValues values = new ContentValues();
    values.put(SQLiteDbHelper.COLUMN_NAME_SP, sp);
    values.put(SQLiteDbHelper.COLUMN_NAME_ST, st);
    long insertId = database.insert(SQLiteDbHelper.TABLE_NAME, null, values);}

解决方案

you forget to place comma(,) after every column name in create table query change it as:

private static final String DATABASE_CREATE =
        "CREATE TABLE " + TABLE_NAME + 
         " (" +
        COLUMN_NAME_SP + " text not null, " +
        COLUMN_NAME_ST + " text not null " +
        ");";

这篇关于Android应用程序崩溃的调用SQLiteHelper的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆