2012-02-27 85 views
0

我想使用SQLite瀏覽器編輯我的應用程序的數據庫。我可以使用adb shell(sqlite3)編輯數據庫,但我寧願使用GUI編輯它,而不是使用命令行。如何從模擬器獲取數據庫到本地驅動器?截至目前我已經嘗試過:從模擬器(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 2012-02-27 21:34:02

+0

我不確定,但我認爲你的軟件包沒有在Manifest中定義的SDCard的寫權限。這就是它顯示權限被拒絕的原因。嘗試在清單中提供android.permission.WRITE_EXTERNAL_STORAGE使用權限。 – 2012-02-28 04:10:27

+0

好的,我把它放在Manifest文件中,但沒有用:-(。我確信它非常簡單,如果你還有其他建議,那就太棒了,我認爲這些權限可能是DB文件,爲什麼我不能訪問這個數據庫? – user1183460 2012-03-02 04:24:41

0

拉從SD卡的文件確定你連接到DDMS中的模擬器實例,而不是實際的設備?我一直能夠從

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

目錄推拉SQLite數據庫,我不能認爲這將覆蓋任何設置。另一種方法是根據實際的電話進行操作,然後您就可以將手機中的任何內容移動到電腦上。

+0

當我訪問數據庫的程序正在運行時,我進入了Eclipse中的DDMS視圖。我是否連接到模擬器實例在DDMS中,我知道這很奇怪,當我進入數據/數據目錄時,我只能看到名爲「con」的文件夾,有什麼建議? – user1183460 2012-03-02 04:13:23

+0

你有沒有嘗試過通過adb連接在shell中。然後運行adb -devices,你應該得到類似「emulator-5554」的東西,如果沒有,那麼你的問題會更廣泛,我會重新安裝eclipse和所有的android工具和sdks。 adb -e shell ls/data/data這將列出th e目錄。發回你得到的輸出。其他信息可在http://developer.android.com/guide/developing/tools/adb.html找到 – 2012-03-02 09:59:40

相關問題