SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLiteReadOnlyDatabaseException:опитайте се да напишете база данни само за четене (код 1032)

Заседнал съм с горе-долу същия проблем и открих открит дефект по въпроса, който има смисъл...

https://code.google.com/p/android/issues/detail?id=174566

Моето заобиколно решение - макар и не най-доброто решение - е никога да не предприемам ревизията на базата данни и да проследя това сам, като по този начин никога не извиквам onUpgrade() , и ръчно направете надстройка, когато актуализирате приложението.

Като алтернатива, ако имате малка DB, която е само за четене, можете да задействате копие на db в активи на всеки onCreate() в DBHelper клас, но това може да доведе до нежелани проблеми, ако файловата система е пълна, така че правете това само докато търсите по-добро решение.

@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());
    }
}

Приложението ми сега се надгражда както трябва с моето заобикаляне и като преценя колко време е минало, откакто този дефект беше повдигнат първоначално, може никога да не бъде коригиран...

Съжалявам, че това не е пълно решение на проблема, но е поне начин напред.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Емулатор срещу устройство за съхранение на SD карта на Samsung

  2. SQLite - Вмъкване на данни

  3. Преобразувайте NULL стойности в стойността по подразбиране на колоната при вмъкване на данни в SQLite

  4. Android Studio 3.0 canary 1:SQL синтактична грешка

  5. Вмъкване в базата данни SQLite android