[解決済み] デバイス上のsqliteデータベースのデバッグ
質問
現在、Android用のWiFiアプリケーションを制作しています。デバイス上のデータベースにアクセスしようとすると、問題が発生します。エミュレータでのデバッグは、エミュレータに WiFi サポートがないため、私のために動作しません。私は、以下を使用してデバイスからデータベース ファイルを取り出そうとしました。
adb pull data/data/package-name/databases/database-name
しかし、私はエラー"Permission denied."が表示されます。 この回答では Androidです。データベースファイルはどこに保存されていますか? コモンズウェアでは、デバッグモードで実行することにより、データベースファイルを引き出すことを提案しています。しかし、それもうまくいきません。デバイスを root 化することなくデータベースをデバッグする方法について、何らかの助力があれば幸いです。
どのように解決するのですか?
からの繰り返しになりますが 別の答え :
<ブロッククオート
API レベル 8 (Android 2.2) 以降、アプリケーションをデバッグ可能としてビルドした場合、シェル
run-as
コマンドを使用して、特定のユーザー/アプリケーションとしてコマンドや実行ファイルを実行するか、または単にスイッチで
UID
に切り替えて、アプリケーションのデータディレクトリにアクセスできるようにします。
したがって、デバイスからアプリケーションのデータベースを取得したい場合は、アプリケーションのデバッグビルドを実行し、アプリケーションのデータディレクトリにアクセスするために
adb shell
に接続し、次のコマンドを実行します。
run-as com.yourpackage sh -c "cat ~/databases/db-file" > /sdcard/db-file.sqlite
これは、あなたの
db-file
をSDカード/外部ストレージのルートにコピーします。これで、そこからファイルマネージャを使って簡単に取得できるようになります。
adb pull
などで簡単に取得できます。なお、この方法では、アプリに
WRITE_EXTERNAL_STORAGE
パーミッションを持つ必要がないことに注意してください。
Linux/Mac システムでは、adb シェルに入らずに使用できる次のコマンドで、データベースをコンピューターに直接コピーできる可能性があります。
adb shell 'run-as com.yourpackage sh -c "cat ~/databases/db-file"' > db-file.sqlite
ただし、WindowsではCR/LF記号の変換の関係で、この方法は正しく動作しません。そこで、前者の方法を用いてください。
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み] SQLiteでテーブルが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】ADB Android デバイスが認証されない件
-
[解決済み】Android ADB デバイスがオフラインでコマンドを発行できない。
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] Android - SQliteデータベースのプルandroidデバイス
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] adbを使用すると、dataフォルダへのアクセスが拒否されるのはなぜですか?
-
[解決済み] BottomSheetDialogFragmentの状態をexpandedに設定する。
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] DialogFragmentを正しく終了させるには?
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] react nativeアプリのバージョン番号を更新する方法
-
[解決済み] 実行に失敗しました app:processDebugResources Android Studio
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理
-
[解決済み] ランアスを使って内部ストレージからデータベースやその他のファイルを取得する。