sqlite データベースを使用して Android アプリケーションを開発しました。現在、私のアプリは Google Play にあります。ここでは、選択クエリの実行中に「そのようなテーブルはありません」などの問題が報告されています。実際には、Assets フォルダーからデータベースをコピーしました。ここで私は以下 のリンクをたどってデータベースをコピーしました ここに私がたどったリンクがあります
そしてコードによると
public class DbFromAssets extends SQLiteOpenHelper {
private String DB_PATH = Environment.getDataDirectory()+"/data/package/databases/";
private static String DATABASE_NAME = "mydb.db";
private final String DEFAULT_DESTINATION = DB_PATH + DATABASE_NAME;
@SuppressWarnings("static-access")
public DbFromAssets(Context ctx)
{
super(ctx, DATABASE_NAME, null, 1);
try
{
this.getReadableDatabase();
InputStream is = ctx.getAssets().open(DATABASE_NAME);
byte[] buffer = new byte[512];
int length;
OutputStream os = new FileOutputStream(DEFAULT_DESTINATION);
while ((length = is.read(buffer)) >0){
os.write(buffer, 0, length);
}
os.flush();
os.close();
is.close();
this.close();
}catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
以下のように、スプラッシュ画面でこのクラスメソッドを呼び出しています
@SuppressWarnings("read-database")
DbFromAssets readdb= new DbFromAssets(SplashActivity.this);
これは、エミュレーターと lg sprint、motorolo droid などの利用可能なデバイスでテストした私の側で完全に機能しています。問題は一度も発生しませんでしたが、Google Play アカウントで強制終了レポートが表示されます。なぜそれがエラーを出しているのか、誰でも理解できますか。私のアプリを改善するために私にアドバイスしてください。
前もって感謝します。