編集:明確にするために以前のコードを削除しました
提案に基づいて、ログ メッセージを追加して、停止している場所を確認しました。
への呼び出しを適切にスローしているように見えますがcheckDatabase()
、データベースをコピーするために戻っていません。これは私のcheckDatabase()
方法です:
File dbFile = new File(DB_PATH + DB_NAME);
if(dbFile.exists()){
Log.d("True","Returned true");
return true;
}else{
dbFile.getParentFile().mkdirs();
Log.d("CreatedPath","Made the right directory");
return false;
}
デバッグ ログに「作成されたパス」メッセージが表示されます。それでそこまで進んでいます。
次に、false を返します。これにより、次のことが開始されます。
public void createDataBase() throws IOException{
boolean dbExist = checkDatabase();
if (!dbExist){
this.getReadableDatabase();
// Calling this method an empty database will be
// created into the default system path of
// the app so we can overwrite with FirstDB.
try{
copyDatabase();
}catch (IOException e) {
throw new Error("Error copying database");
}
}
}
ただし、これらのログ メッセージはまったく表示されません。false を返し、そのまま動き続けるようなものです。
createDataBase()
もう一度電話する必要がありますか?