6

Genymotion の Ubuntu インストールに問題があります。主に、Eclipse の DBMS とシェルの adb の両方で /data/ フォルダーの内容を表示できないため、データベースをデバッグできません。表示されているファイルはありません。

/sdk/platform-tools に cd で adb を介してログインし、 ./adb shell su と入力します。タブが機能していないことがわかったので、やみくもにパスを入力します。とにかく、私は db を引き出すことができません。おそらく、コマンドで何か間違ったことをしているのでしょう。

DBMS を介して接続しようとしましたが、データ フォルダーにコンテンツが表示されません。

エミュレーターではすべてがスムーズに動作しますが、エミュレーターは遅いので、genymotion を使用したいと思います。

この問題に対処する方法について何か提案はありますか?

4

4 に答える 4

10

あなたが話している問題はありません。Genymotion のデフォルトのシェル ユーザーは root であるため、発生しないはずです。すべてにもかかわらず、run-asコマンドを使用してデータに直接アクセスできます。

短くするために。アプリのデータ フォルダーは、アプリのユーザー権限によって保護されています。デフォルトのシェル ユーザーには、アプリのフォルダーへのアクセス権がありません。コマンドのおかげで、シェルが使用しているユーザーを変更できますrun-as

  1. シェルを開きます。adb shell
  2. 次に、次のように入力します。run-as your.package.name

このコマンドは、シェル ユーザーをアプリのユーザーに変更します。したがって、アプリのデータを読み書きする権利があります。アプリのデータ フォルダーにもリダイレクトされます。/data/data/you.package.name

完了すると、ファイルを簡単に参照できます。

注意: このコマンドを使用するには、アプリをデバッグとしてビルドする必要があります。DDMSのデバイスプロセス一覧に表示されるはずです。

于 2013-08-12T12:26:45.670 に答える
7

ローカル コンピューターでエミュレーターを実行してから、

localuser:~ localhost$ adb shell
shell@android:/ $ su
shell@android:/ # cp /data/data/ your.package.name /databases/ your_database.db /mnt/shell/emulated/0/Download/ your_database. db
shell@android:/ # exit
shell@android:/ $ exit
localuser:~ localhost$ adb pull /mnt/shell/emulated/0/Download/ your_database.db ~/ your_database.db


1. エミュレーターに接続します2.
スーパーユーザーのアクセス許可を要求します
3. スーパーユーザーのみが使用できるファイルをパブリック ディレクトリ (この場合はダウンロード) にコピーします
4. ファイルをパブリック フォルダー (ダウンロード) からローカル マシンのホーム ディレクトリ。このステップは、Eclipse GUI から実行することもできます。

于 2013-12-05T14:10:10.520 に答える
2

そのフォルダー/ファイルへのアクセス許可を設定する必要があり、簡単にプルできます。

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file"

adb pull /data/data/package.name/databases/file .

于 2014-01-01T21:42:58.910 に答える