2012-03-01 3 views
1

私はアンドロイドアプリケーションで使用するandroid_metadataテーブルを持つ(デスクトップのsqliteアプリケーションで作成された)SQLite3データベースを持っています。30mb Sqlite3データベース - androidアプリケーションに含まれています

このデータベースファイルを使用してandroidデータベースを作成する最適な方法は何ですか?

私はassetsフォルダにインクルードしようとしましたが、これをアプリケーションにコピーするとサイズエラーが発生し、これが最大サイズのアセットファイルによるものかどうかはわかりませんでした。

また、データベースをsdカードに格納してアクセスする際のガイドも読んでいます。

sqlite3のエクスポートから新しいデータベースを開くには、アンドロイドのsqliteヘルパーにはどの機能が最も適していますか?

は、私がデータ/データ/ COM ../データベースへのデータベースファイルをプッシュ/そしてそれは「android.database.sqlite.SQLiteDatabaseCorruptException作成:不正な形式のディスク..

これを実行する方法がわからないが、いずれかを認めます!

+0

アンドロイド版をお使いですか? 2.2? – waqaslam

+0

2.3しかしそれは1.6 – user1184075

+0

と下位互換性があり、あなたの電話機/エミュレータのバージョンは何ですか? – waqaslam

答えて

0

あなたは、簡単に開発者がアプリでデータベースをパッケージ化できるようにするために設計されていて、このためSQLiteAssetHelperを使用しようとすることができます。

言われて、データベースがあまりにも大きさであることを助ける。がありますあなたのAPKと解凍されたデータベースの両方に余裕のない1.6台のデバイスがたくさんあります。

0

サイズエラーが発生するのは、アンドロイドがアセットフォルダ内のファイルを圧縮するのが好きですが、サイズが1メガバイトを超えると解凍できないためです。いくつかのファイル拡張子はjpeg、gif、mp3、jetのように圧縮されません。私はいつも私のdbの名前をname.db.jetのようにして、それをDatabaseディレクトリにコピーするときにname.dbという名前に変更します。ファイルの拡張子は実際には何も意味しませんが、.jetのような拡張子を付けて名前を付けると、最大サイズの制限が取り除かれます。

ちなみに、30MBのサイズのDBを含める場合は、必ず圧縮してください。それは約10MBのサイズに縮小されます。

関連する問題