2016-05-24 8 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); 

//(NOW解決しよう)UPDATE:

私は今日それを修正しました。何とか問題はプロジェクト自体にありました。私は新しいプロジェクトを作成してペーストをコピーしようとしました。同じコードがそこにあり、それを実行し、正常に動作するようになりました。私はこれについて論理的な説明はありませんが、logcatは新しいプロジェクトで多くの助けになりました。同様の問題を抱えている人は、新しいプロジェクトを作成してそこでクエリをテストすることをお勧めします。時々。がんばろう!

+0

クラッシュが発生したときにlogcatを投稿できますか? –

+0

logcatには絶対に何もありません。この問題が発生した後に追加される行は1つだけですが、このトピックに関連していません –

+0

logcatに何も表示されないインスタンスが発生しました。 Androidスタジオ私はそれを試み、あなたがlogcatで何かを得ることができるかどうかを見ます。 –

答えて

0

は、このよう

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

に新しいデータベース変数を作成してみてくださいし、新しいDBの変数にのonCreate()メソッドを実行します。 すべての関数で新しいインスタンスを作成する必要があります。

+0

1.私はそれを公開していないのでSQLiteDatabaseを作成します... 2.どのデータベースに割り当てる必要がありますか? –

+0

SQLデータベースファイルが作成されているかどうかを確認してください。 eclipseのファイルエクスプローラーを使ってください。ファイルが作成されていない可能性があります。 –

関連する問題