2016-05-24 24 views
0

有人可以帮我解决我的问题吗?我试图实现SQLite数据库到我的应用程序,但任何时候我运行使用我的数据库类的活动,它会关闭我的应用程序(它仍然在后台运行,当我开始,整个应用程序重新启动)。我没有得到任何错误或例外,所以我不知道如何跟踪问题。Android 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); 

// UPDATE(解决NOW):

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

+0

当发生崩溃时,您可以发布您的logcat吗? –

+0

logcat中绝对没有任何东西,在这种情况发生后只添加了一行,但与此主题无关​​ –

+0

我遇到了logcat不会显示任何内容的实例,通常在关闭并打开时会得到修复Android Studio。我会尝试一下,看看你能否在logcat中获得一些东西。 –

回答

0

尝试以这种方式

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

,并运行在新的数据库变量onCreate()方法创建一个新的数据库变量。 您也必须在每个函数中创建一个新实例。

+0

1.无法创建SQLiteDatabase,因为我不能访问它,因为它不公开... 2.我应该分配给它什么样的数据库? –

+0

尝试检查sql数据库文件是否正在创建。使用eclipse的文件浏览器。这可能是你的文件没有被创建的情况。 –