2010-06-10 223 views
12

我試圖訪問我直接在我的Nexus上開發的應用程序的數據庫,但是當我試圖執行「sqlite3」命令時,我得到「權限被拒絕」。 我也嘗試在root mod中啓動adb,但是又一次在設備上拒絕了權限...我想我必須使用模擬器來做到這一點,但是我有很多要加載的數據,並且它已經是10使用Wifi上的手機比仿真器快幾倍... 除非有人有任何想法? 謝謝sqlite3權限被拒絕android

回答

3

典型。

我通過在我的應用程序中添加一個功能來備份(複製)數據庫到SD卡,從而解決了這個煩惱。 adb pull適用於任何SD卡文件。

編輯:。固定的「亞行」拼寫錯誤(是的「SDP」

+0

是的,這是一個很好的把戲。我會去做。謝謝 – Sephy 2010-06-11 10:52:58

+0

什麼是sdp?你可以發佈一個鏈接到sdp嗎?謝謝。 – 2012-03-25 16:22:25

+0

@kilaka:謝謝 - 我修正了我的錯誤 - 應該改爲:「使用adb pull命令」 - Android Debug Bridge。 – 2012-03-25 20:17:40

4

文件被讀保護,你需要以root您的手機或使用仿真器

0

我也有類似的問題,我拉sqlite3從模擬器,並推入我的設備,並無法運行它 - 權限被拒絕。

顯然sqlite3二進制沒有執行權限(-rw-rw-rw-)所以chmod + x sqlite3解決了這個問題。

8

我掙扎了一段時間,所以這裏是我的soluti在一個無根設備上工作:

#!/bin/sh 

# fill these values in 
PACKAGE=com.example.android 
DB=something.db 

# copy db to sdcard using package permission (using cat because no cp command) 
adb shell "run-as $PACKAGE cat /data/data/$PACKAGE/databases/$DB > /sdcard/$DB" 

# pull file from sd card 
adb pull /sdcard/$DB 

# do something with it (need to install sqlitebrowser obviously) 
sqlitebrowser $DB 
+0

謝謝@eggbert。它非常有用,併爲我工作(使用Ubuntu 10.04),並嘗試在無根設備上使用可調試應用程序。 – user755499 2013-01-15 09:08:23

+0

這有效,但在我的手機(HTC Desire)中,數據庫文件末尾沒有'.db'擴展名。 – HRJ 2013-01-21 05:10:50

+0

非常好,................ – 2013-05-24 07:46:09