【问题标题】:Android app crashing on calling SQLiteHelperAndroid 应用程序在调用 SQLiteHelper 时崩溃
【发布时间】:2013-03-28 01:49:32
【问题描述】:

我一直在使用本教程,但我不得不做一些小改动,我的应用程序在手机上崩溃了。但是,代码中没有错误! 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);
    }

}

然后,稍后,我有这个按钮单击方法的代码:

            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);}

【问题讨论】:

  • 你能添加你的 logcat 输出吗?找出问题会很有帮助
  • 提供 Logcat 输出。

标签: android database eclipse sqlite


【解决方案1】:

您忘记在创建表查询中的每个列名之后放置逗号(,) 将其更改为:

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

【讨论】:

  • 谢谢!这么小的问题,这么大的麻烦!我会尽快接受您的回答作为解决方案!再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多