SQLite JDBCコネクタを使用して生成したSQLiteデータベースがhereです。外部で生成されたSQLiteデータベースは、AndroidのSQLiteOpenHelperによって読み取り専用と見なされます
このデータベースをAndroid携帯のSDカードにコピーし、SQLiteOpenHelperを使用してこのデータベースを開こうとしました。私は次の例外を受け取ります:
ERROR/SQLiteOpenHelper(7373): android.database.sqlite.SQLiteException: attempt to write a readonly database: BEGIN EXCLUSIVE;
ERROR/AndroidRuntime(7373): Caused by: android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 0 to 1: /mnt/sdcard/4Trak/4Trak.db
これは私には意味がありません。なぜそれは読み取り専用のデータベースですか?私は最初にそれを生成するために書き込むことができました。また、android_metadataテーブルが必要であることがわかったときに、SQLiteブラウザを使用して追加しました。
このデータディレクトリはどこに保存されていますか?それが携帯電話のメモリにあり、SDカードではない場合は、データベースが電話のメモリには大きすぎるので、それは私には役に立たない。また、以前はSDカード上のこの4Trakディレクトリからデータベースを開くことができましたが、Androidアプリケーション自体で作成されました。 – Ogre
データベースは "/ data/data /" + context.getPackageName()+ "/ databases /"に配置する必要があります。 sdCardを使用する場合は、独自のSQLiteOpenHelperを記述する必要があります。詳細はこちら[スレッド](http://groups.google.com/group/android-developers/browse_thread/thread/76b3f10269d0fbe0/1317ce60e25597b6?show_docid = 1317ce60e25597b6) –