AndroidのSQLiteのDBを実機からPCにコピーするときに少しハマった
AndroidのSQLiteのDBのデータを実機からPCにコピーする方法として、以下の様なコマンドがよく紹介されています。
adb -d shell 'run-as パッケージ名 cat databases/db' > ~/temp/db
この方法でデータは持ってこれるのですが、SQLiteで確認すると「.schema」でテーブルは確認できるますが、SELECT文を実行すると
Error: database disk image is malformed
とエラーが出ます。
原因はよくわからないのですが、ワンクッション置いて
adb -d shell 'run-as パッケージ名 cat databases/db > /sdcard/db' adb pull /sdcard/db ~/temp/db
のような感じにするとうまくいきました。
ちなみに実機はNexus S(2.3)です。