2012-02-27 11 views
0

SQLiteブラウザを使用してアプリケーションのDBを編集したいと思います。私はadbシェル(sqlite3)を使用してDBを編集できますが、コマンドラインではなくGUIを使用して編集します。エミュレータからローカルドライブにDBを取得するにはどうすればよいですか?現時点では、私は試しました:エミュレータ(data/data/package_name/databases)からローカルドライブにSQLiteデータベースを取得する

1)adb pullコマンドを使用して、エミュレータからローカルドライブにデータベースをプルします。

ADBプルデータ/データ/ com.myapps.quizのC:/

このコマンドが正常に実行されますが、私は私が指定したローカルドライブ内のファイルやディレクトリを見つけることができませんよ。

2)ファイルエクスプローラでファイルを見つけるためにDDMSパースペクティブを使用しましたが、データ/データディレクトリに入るたびに、「con」というディレクトリしか表示されません。私も全体のデータ/データディレクトリをプルしようとしましたが、データベースが格納されているパッケージ(com.myapps.quiz)の名前を見つけることができません。

私はここで何が欠けていますか?あなたが提供できるあらゆる助けが最も役に立つでしょう!

答えて

1

あなたのデータベースはパッケージに安全なので、これを直接取得することはできません。

私はこれを回避することができます。

は私がやっていることは猫

adb shell 
run-as your.package.name 
cd databases 
cat your_database.db > /mnt/sdcard/your_database.db 

を使用してSDカードへのシェルと実行としての私のパッケージとデータベースをコピーするために行くと私はよろしいですファイルエクスプローラ

+0

ありがとうございます。これは有望に見えますが、今私は許可の問題に遭遇しています。 「許可が拒否されました」と表示されます。とにかくmnt/sdcardディレクトリのパーミッションを編集できますか? – user1183460

+0

私は確信していませんが、あなたのパッケージにはManifestで定義されたSDCardに対する書き込み権限がないと思います。これが許可が拒否されたことを示す理由です。あなたのマニフェストでandroid.permission.WRITE_EXTERNAL_STORAGE使用許可を与えるようにしてください。 –

+0

私はManifestファイルに入れましたが、役に立たなかったのです:-(私はそれが本当にシンプルなものだと確信しています。別の提案があればそれは素晴らしいでしょう。 – user1183460

0

を使用してSDカードからファイルを引っ張ります実際のデバイスではなく、DDMSのエミュレータインスタンスに接続していますか?私はいつもプッシュしてからsqliteデータベースを引き出すことができました

data/data/com.my.package/databases/mydb.sqlite 

ディレクトリ、私はそれを無効にする設定を考えることはできません。別の方法として、実際の電話機をルートしてから、電話機からコンピュータに何かを移動することができます。

+0

DBにアクセスするプログラムが実行されている間、EclipseのDDMSビューに移動します。エミュレータのインスタンスに接続していますか?私はデータ/データディレクトリに行くとき、私は "con"と呼ばれるフォルダを参照してください任意の提案? – user1183460

+0

あなたは、エミュレータの発生率を独立して起動する"emulator-5554"のようなものを入手する必要があります。そうでなければ、より広い問題があり、EclipseとすべてのアンドロイドツールとSDKを再インストールします。 adb -eシェルls/data/dataそれはthをリストするeディレクトリ。あなたが得たアウトプットをポストバックする。 http://developer.android.com/guide/developing/tools/adb.htmlで入手可能なその他の情報 –

関連する問題