Saya terjebak dengan masalah yang kurang lebih sama persis dan saya menemukan cacat terbuka pada masalah yang masuk akal...
https://code.google.com/p/android/issues/detail?id=174566
Solusi saya - meskipun bukan solusi terbaik - adalah tidak pernah melangkah revisi database dan melacak ini sendiri, sehingga tidak pernah memanggil onUpgrade()
, dan lakukan peningkatan versi secara manual saat memperbarui aplikasi.
Atau jika Anda memiliki DB kecil yang hanya dapat dibaca, Anda dapat memicu salinan db dalam aset di setiap onCreate()
di DBHelper
class, tetapi ini mungkin memberikan masalah yang tidak diinginkan jika sistem file penuh, jadi lakukan saja ini sambil mencari solusi yang lebih baik.
@Override
public void onCreate(SQLiteDatabase db) {
// Workaround for Issue 174566
myContext.deleteDatabase(DB_NAME);
try {
copyDataBase();
}
catch(IOException e) {
System.out.println("IOException " + e.getLocalizedMessage());
}
}
Aplikasi saya sekarang ditingkatkan sebagaimana mestinya dengan solusi saya dan dengan menilai berapa lama sejak cacat ini muncul awalnya, itu mungkin tidak akan pernah diperbaiki sama sekali...
Maaf ini bukan solusi lengkap untuk masalah ini, tapi setidaknya ini adalah cara untuk maju.