0

Android v 2.2.2 を実行する HTC Desire と Android v 2.3.4 を実行する HTC Flyer タブレットを持っていると報告するユーザーがいます。

彼のタブレットで私のアプリによって作成されたデータベース (Sqlite) は、彼の携帯電話では読み取ることができません。彼の電話で作成されたデータベースは、どちらのデバイスでも読み取ることができます。(私はそれが正しい方向に進んでいることを願っていますが、うまくいけばあなたはその考えを理解するでしょう)

これは、データベース エンジンのバージョンが異なるためだと思います。これを処理し、一方のデータベースを他方と同じ形式に変換して、どちらのデバイスがデータベースを作成したかに関係なく、両方のデバイスがデータベースを開くことができるようにする方法はありますか?

コマンドラインを使用して変換を行うことを提案するこのリンクを見つけました。ただし、デバイスではあまり役に立ちません。http://www.sqlite.org/formatchng.html

4

1 に答える 1

0

問題は、WALモードがオンになっていることのようです。http://www.sqlite.org/wal.html

WALはデフォルトでオフになっているはずです(そして私のすべてのNexusデバイスではオフになっています)。

一部のメーカーは、デフォルト設定をオンにして、データベースを以前のバージョンと互換性のないものにするのが楽しいと考えていると思います。

Walモードは3.7.0より前のバージョンのSQLiteではサポートされていません。このフラグが設定されていると、データベースを開くことができません。

于 2013-01-29T08:09:17.913 に答える