有人可以帮我解决我的问题吗? 我试图将SQLite数据库实现到我的应用程序中,但是每当我运行使用数据库类的活动时,它都会关闭我的应用程序(它仍在后台运行,当我启动时,整个应用程序会重新启动)。 我没有收到任何错误或异常,所以我不知道如何跟踪问题。

这是我的数据库类:

public class DatabaseHandler extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "events.db";
private static final int DATABASE_VERSION = 1;

public static final String TABLE_ALLEVENTS = "allevents";

public static final String COLUMN_TITLE = "title";
public static final String COLUMN_SUBTITLE = "subtitle";
public static final String COLUMN_DESCRIPTION = "description";
public static final String COLUMN_STARTDATE = "startdate";
public static final String COLUMN_ENDDATE = "enddate";
public static final String COLUMN_PICTUREURL = "pictureurl";
public static final String COLUMN_URL = "url";
public static final String COLUMN_SAVED = "saved";

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    //3rd argument to be passed is CursorFactory instance
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_EVENTS_TABLE = "CREATE TABLE "
            + TABLE_ALLEVENTS + "("
            + COLUMN_TITLE + " TEXT,"
            + COLUMN_SUBTITLE + " TEXT,"
            + COLUMN_DESCRIPTION + " TEXT,"
            + COLUMN_STARTDATE + " TEXT,"
            + COLUMN_ENDDATE + " TEXT,"
            + COLUMN_PICTUREURL + " TEXT,"
            + COLUMN_URL + " TEXT,"
            + COLUMN_SAVED + " TEXT);";
    db.execSQL(CREATE_EVENTS_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_ALLEVENTS);

    // Create tables again
    onCreate(db);
  }
}

我在活动中唯一要做的就是:

DatabaseHandler db = new DatabaseHandler(this);

//更新(立即解决):

我今天修复了它,看来问题出在项目本身中,因为我试图创建一个新项目并在其中复制粘贴相同的代码并运行它,然后它开始正常工作。 我对此没有逻辑上的解释,但是logcat在新项目中也为我提供了很多帮助,所以我对有类似问题的任何人的建议是创建一个新项目并在那里测试您的查询,因为显然Android Studio不会显示所有错误有时。 祝好运!

===============>>#1 票数:0

尝试以这种方式创建新的数据库变量

SQLiteDatabase db=new SQLiteDatabase();
this.db=db;  

然后在新的db变量上运行onCreate()方法。 您还必须在每个函数中创建一个新实例。

  ask by Vladimir Marton translate from so

未解决问题?本站智能推荐: