web-dev-qa-db-ja.com

Androidデバイスモニターの「データ」フォルダーが空です

データの作成、挿入、取得をアプリdbでテストしましたが、Logステートメントを使用することで機能することがわかりました。

ただし、テストを迅速化し、Androidデバイスモニターを使用したいと思います。ただし、dbが存在し、データは保存されていますが、以下にアクセスすると、dataフォルダーは空です。

enter image description here

なぜそうなるのでしょうか? dbファイルとコンテンツを表示するために、これをどのように構成できますか?

42
Sauron

エミュレーターを使用して問題を解決する

適切な権限がないため、フォルダー/dataを空にすることができます。それを解決するには、次のコマンドを実行する必要がありました。

adb Shell
su

これらのコマンドは、エミュレーターでシェルを起動し、ルート権限を付与します。コマンドadbは、Android SDKのplatform-toolsフォルダーにあり、通常はMacOSの~/Library/Android/sdk/にインストールされます。

chmod -R 777 /data

ツールA ndroid Device Monitorに表示されるように、フォルダー(およびサブフォルダー)の権限を再帰的に変更します/data

adb root

最後に、このコマンドはadbをルートとして再起動します。注意してください、それは開発ビルド(通常はエミュレータービルド)でのみ動作します。

その後、フォルダー/dataの内容を表示し、そこにあるデータを転送できます。次のようなadb pull <remote> <locale>を使用して、コンソールでも実行できます。

adb pull /data/data/<app name>/databases/<database> .
39
ZenLulz

@Steven Kの回答に加えて:実際のデバイスをルート化せずにデータにアクセスしたい場合は、emulator with API 2でアプリを実行する必要があります。 (またはそれ以下)。 既知の問題 23以上のAPIは、Android Device Monitorをデプロイするときに問題を引き起こす可能性があります。

24
Joni

誰かが上記の問題を抱えている場合は、ターミナルウィンドウで以下の手順を実行します。

  1. / Users/Username/Library/Android/sdk/platform-toolsに移動します
  2. ./adb rootを実行します

それでおしまい。問題が解決しました。

8

空ではありません。..デバイス上のフォルダを表示する権限がありません。

シミュレータで試してみてください。ルートアクセス権があるため、動作します。

8
Steven K

開発中にデータベースをパブリックフォルダーに保存する方が簡単な場合があります。

または、この投稿を見ることができます:

Androidデバイスのデータ/データフォルダーにアクセスする方法

5
Steven K
4
Rupesh Yadav

API_25でも同じ問題が発生しましたが、うまくいきませんでした。

API_23 emulatorを設定すると、API_23で動作します。

1
Amir De

Cmd GoToで:

C:\Users\UserName\Android-sdks\platform-tools

実行:

adb root

完了

0
Hecho

Windowsを使用している場合は、次の指示に従ってください。

  1. Androidエミュレーターでアプリを起動します。
  2. 次に、管理者としてコマンドプロンプトを開き、たとえばcd C:\Android\sdk\platform-toolsなどのSDKパスに移動します
  3. タイプadb root
  4. 次にadb pull /data/data/ name-of-your-package /databases/name-of-your-databaseと入力します
  5. データベースはplatform-toolsというフォルダーにあります。

次に、Chromeウェブストア経由でGoogle chromeにSqlite Manager拡張機能をインストールし、それを使用してエクスポートしたデータベースを表示および管理できます。

あなたが根ざした携帯電話を持っている場合は、上記と同じ指示に従うことができます。

0
Nelson Guest