アプリケーション開発ポータルサイト
ServerNote.NET
ServerNote.NET厳選キャンペーン・クーポンはこちら!
カテゴリー【AndroidWindows
Android実機からadbで取得したdbがERROR: database disk image is malformedになる場合の対処法
POSTED BY
2022-10-11

自分のアプリ内で動的にSQLを発行し作成したDBがあって、それをファイルとしてPCに取り出したい場合、adbコマンドを使う。

adbコマンドは

C:\Users\hogeuser\AppData\Local\Android\Sdk\platform-tools

にあるので、コントロール パネル→システムとセキュリティ→システム→システムの詳細設定→環境変数で、ユーザー環境変数Pathに上記パスを通しておくこと。

さて、アプリ内で作成したdbファイル名がtest.db、アプリパッケージ名がjp.co.example1155.testappであるとする。単純にそのDBファイルをローカルPCにコピーしようとすれば、

adb shell run-as jp.co.example1155.testapp cat databases/test.db > test.db

と打つのがシンプルに思われる。実際、ローカルにtest.dbファイルが保存される。

しかしこれをsqlite3で開こうとしたら、

ERROR: database disk image is malformed

と怒られてしまった。この場合の解決策は以下。コンソールに入ってsdcardへコピーしてからpullする。

adb shell run-as jp.co.example1155.testapp
cd databases
cat test.db /sdcard/test.db
exit
adb pull /sdcard/test.db test.db

こうすると何故か、同じローカルにできたtest.dbでも、今度はちゃんとsqlite3で開くことができた。

ゴルフ用品買取【JUSTY リサイクルネット】
ダンボールに詰めて自宅で待つだけ。ご自宅まで無料で集荷に伺います。 送料無料、査定無料、梱包材無料、手...READ MORE
【スマートフォン高価買取】あなたの携帯・スマホ、実は高く売れるんです!
【送料無料】 ネットで売るならネットオフ! スマートフォンを1点から高価買取! Softbank,docomo,auなどの...READ MORE
大切な人に月の土地をプレゼント。驚く・喜ぶ顔が楽しみ!
米国ルナエンバシー社の日本代理店です。 サプライズプレゼントにぴったり! 月のオーナーは、現在世界中で...READ MORE
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【webmaster/管理人】
自営業プログラマー
ご連絡は以下アドレスまで★

☆ServerNote.NETショッピング↓
ShoppingNote
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】