1. ホーム
  2. Android

SQLiteReadOnlyDatabaseException: 読み取り専用のデータベースを書き込もうとした (コード 1032)

2022-02-20 04:38:24
SQLiteReadOnlyDatabaseException: 読み取り専用のデータベースを書き込もうとした (コード 1032)
これは、res/rawのファイルが読み書きアクセスなしでコピーされたためです




そこで、症状は治しても根本的な解決にはならない、最初の解決策として思いついたのが
アプリのdatabasesディレクトリに移動して、データベースファイルにパーミッションを追加しました。
chmod 777 xxx




そうすれば、問題なく動作します。
しかし、この方法は、アプリを再インストールするたびに、上記の権限追加作業を再実行する必要があり、より面倒なことになります。




2つ目の治療法




参考 http://stackoverflow.com/questions/35090893/sqlitereadonlydatabaseexception-attempt-to-write-a-readonly-database-code-1032




元々はBaseApplicationの中にデータベースをコピーしていたのですが、書き込みが出来ず、読み込みのみで、データを挿入するたびに上記のようなエラーが報告されることに気づきました。