10

電話での開発中にデータベースにアクセスできません。私が実行するたびに

cd /data/data/com.mycompck/databases

そして実行すると、次のようlsになります。"opendir failed, Permission denied"

または、入力するたびに次のsqlite3ようになります。"sqlite3: permission denied"

私は何を間違っていますか?

コンテンツ リゾルバーの値や SQLite データベースの人間の視点を得るのに役立つアプリケーションはありますか?

4

5 に答える 5

17

次のスレッドから私の回答を確認してください: adb を使用しているときにデータ フォルダーへのアクセスが拒否されるのはなぜですか?

API レベル 8 (Android 2.2) 以降では、アプリケーションをデバッグ可能としてビルドすると、シェルrun-asコマンドを使用してコマンドまたは実行可能ファイルを特定のユーザー/アプリケーションとして実行したり、アプリケーションの に切り替えてそのディレクトリUIDにアクセスしたりできます。data.

したがって、基本的には、デバッグ ビルド (リリース ビルドを要求しない限り、Android Studio からアプリケーションを起動するたびに自動的に作成されます) を作成し、次のコマンドを実行する必要があります。

run-as com.mycompck
cd /data/data/com.mycompck/databases
ls
sqlite3 ./yourdatabase.db

ただしsqlite3、多くの電話ではデフォルトでバイナリが存在しないことに注意してください。したがって、おそらくどこかにダウンロードし (例: http://shortfuse.org/の SuperOneClick アーカイブから)、SD カードに保存して実行可能にする必要があります (ただし、これは少しトリッキーです)。たとえば、次のようになります。

run-as com.mycompck
cd /data/data/com.mycompck/
cat /sdcard/sqlite3 >./sqlite3
chmod 744 ./sqlite3
./sqlite3 ./databases/yourdatabase.db
于 2011-12-08T15:39:31.720 に答える
1

質問の最初の部分に答えるには、この回答を確認してください。基本的に、携帯電話には root アクセス権が必要であり、adb を root モードで (「adb root」を使用して) 実行する必要があります。

2 番目の部分については、SQLite Database Browserを使用して SQLite データベースを表示します (ただし、これはデータベースがコンピューター上にある場合のみです。デバイス上のブラウザーについては知りません)。コンテンツ リゾルバーを人間の視点から見る方法がわかりません。

于 2010-05-11T14:43:20.287 に答える
0

Android アプリ データベースを表示および管理する最良の方法は、このライブラリを使用することですhttps://github.com/sanathp/DatabaseManager_For_Android

単一の Java アクティビティ ファイルです。Java ファイルをソース フォルダに追加するだけで、アプリ データベースのテーブルを表示したり、テーブルに行を更新、削除、挿入したりできます。アプリからすべてを実行できます。

開発が完了したら、src フォルダーから Java ファイルを削除します。

それは私を大いに助けました.あなたも助けてくれることを願っています.

ここで 1 分間のデモを見ることができます: http://youtu.be/P5vpaGoBlBY

于 2014-10-02T19:37:28.587 に答える
0

データベース ファイルにアクセスするには、root になる必要があります。そのため、携帯電話で root を取得する (Google で情報を探す) か、エミュレーターからデータベースをデバッグする (これにより、常に root アクセスが可能になります) ことができます。

さよなら!

于 2010-05-11T14:47:19.623 に答える