2015-07-19 58 views
6

我想拉我的應用程序數據庫文件,我可以看到我擁有數據庫文件「-rwxrwxrwx」中的所有權限,我通過chmod -r 777提供了/data/data/com.example.myapp,但我無法做到這一點,當我嘗試將它拉出並且設備管理器不斷崩潰時,我經常會遇到上述錯誤。Android設備管理器:「傳輸錯誤:權限被拒絕」

,我得到的錯誤:

[2015-07-19 19:48:44 - ddms] transfer error: Permission denied

[2015-07-19 19:48:44] Failed to pull selection: Permission denied

我使用Android的工作室,我的設備具有root訪問權限,我在Mac上。

這就是我試圖拉:

enter image description here

編輯:當我運行以下命令我得到這個錯誤Package 'com.example.hackbot' has corrupt installation

run-as com.example.hackbot chmod /data/data/com.example.hackbot/databases/HackBotDB 

任何幫助是有價值的。

乾杯

+0

我發現了一個方法中,我能做到這一點,但它看起來很醜陋,它費時,但作品。我下載了ES文件資源管理器文件管理器(任何可以訪問根文件的資源管理器都可以工作),通過應用程序中的db文件搜索到文件副本並將其移動到SD卡上,然後我就能夠從設備管理器訪問它。然後將其移至DB瀏覽器,以便SQL Lite查看數據庫。 – rd22

+0

我希望還有一些其他的解決方案,不那麼痛苦。請讓我知道,如果有的話。這幾乎消耗了我整整一天,我仍然沒有一個整潔的解決方案。 – rd22

回答

4

亞行殼Linux用戶和您的應用程序Linux用戶是不同的。因此,出於安全原因,您無法從adb獲取私人應用程序數據,但您可以像以前一樣製作副本。我同意,這是混亂和不潔的,但它的設計就是這樣。所以我的建議是將Stetho添加到您的應用程序。您可以從Chrome監控您的數據庫,以及獲取其他調試信息。

+0

wooh!這是一些工具,謝謝你。 – rd22

6

這是很容易做到:

  1. 插入您的設備,並通過命令行或終端
  2. 在shell中運行adb shell一旦run-as com.myapplication.packagname
  3. 然後cd進入數據庫文件夾cd databases
  4. 然後運行cat my_datbase_name.db > /sdcard/my_database_name_temp.db
  5. 運行exit,然後再運行exit以回到no腎錯構瘤終端提示
  6. 運行adb pull /sdcard/my_database_name_temb.db並且應該是它

可以donwload sqlitebrowser,以查看該數據

+0

哦,是的,這從命令提示符複製文件。謝謝。 – rd22

+0

@endlessProgrammer樂於提供幫助 –

-1
  1. 使用Android模擬器然後goto->工具 - >機器人設備監視 運行該應用對話框將打開到文件資源管理器 - >數據文件夾 (允許數據文件夾)
    • 使用開始菜單打開cmd
    • 去SDK文件夾(例如,C:\用戶\機器人-的SDK \平臺工具>)
    • 類型ADB殼
    • CHMOD 777 /數據
    • CHMOD 777 /數據/數據/ in.co.gesardisplays.www.rwfiles /文件/格薩爾。TXT 變化將在ADB顯示器受到影響
  2. 拉出文件從殼
  3. 遵循先前步驟1.2
  4. 類型ADB根
  5. ADB拉/數據/文件夾
    • 出口data/in.co.gesardisplays.www.rwfiles/files/ 選擇你的文件點擊一個文件圖標就會在文件探索的右上角[R