私はデータベースのいくつかのファイルにアンドロイドで参加しようとしています。 2.3より前のアンドロイドバージョンではapk内のファイルのサイズが1MBに制限されていたため、ファイルが最初に分割されました。私が一緒に参加しようとしているファイルは、それを読むためにSQLiteのための右のフォルダに配置する独自の方法が複雑されているデータベースであり、そして私は次の方法使用しています:java(アンドロイド)を使用してデータベースの複数のファイルを結合すると、データベースが破損します
private void copyDB() throws IOException {
// list the files the db is splitted into
int[] cc = { R.raw.cc1, R.raw.cc2, R.raw.cc3 };
OutputStream out = new FileOutputStream(DB_PATH+DB_NAME);
for (int k : cc) {
InputStream in = mContext.getResources().openRawResource(k);
int count;
byte[] filebytes = new byte[1024];
while((count = in.read(filebytes)) != -1)
out.write(filebytes, 0, count);
in.close();
}
// clean up
out.flush();
out.close();
}
ようにあなたが見ることができます、私は一緒にファイルを結合するためにプレーンストリームを使用しています、そして、それはアンドロイド2.3と期待どおりに動作するため、それが動作することをほぼ肯定的です。しかし、私がアンドロイド2.2でテストすると、データベースが壊れています(LogCatの正確なメッセージはありませんが、SQLエラーは「エラー:データベースディスクイメージが不正です」)
/data/data/package.name/database/フォルダに置いたときにデータベースが壊れるのを防ぐために私ができることは何ですか? ありがとうございます。
私は同じ問題に遭遇しました...あなたは解決策を考案しましたか? – pkramaric