データベースをコピーするためのコード:
public static final String DB_PATH = Environment.getDataDirectory() + "/data/MyPackageName/databases/";
public static final String DB_NAME = "MyDB.sqlite";
private void copyDataBase(String dbPath){
try{
InputStream inputStream = context.getAssets().open(dbName);
OutputStream appDB = new FileOutputStream(dbPath,false);
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
appDB.write(buffer, 0, length);
}
appDB.flush();
appDB.close();
inputStream.close();
}catch(IOException e){
e.printStackTrace();
}
}
このコードは、すべての電話とすべての Android バージョンで正常に動作しますが、上記のコードまたは次の行で、一部の電話 (Galaxy S Plus など) で SQLiteDiskIOException が発生します。
SQLiteDatabase db = super.getWritableDatabase();
誰もがこの問題で私を助けることができますか?