1. 程式人生 > >解決開啟Android Device Monitor一系列問題

解決開啟Android Device Monitor一系列問題

問題1:解決開啟Android Device Monitor之後一片空白

問題描述

將手機升級到Android 7.0後,開啟android Device Monitor(DDMS)後,File Explorer中顯示一片空白。如下:

無法顯示目錄樹

Android Device Monitor (DDMS)的版本如下:

Android Device Monitor的版本 25.1.7

不管用monitor.bat(注ddms.bat已棄用)還是通過Android Studio中的圖示啟動(如下圖),都是一樣的問題。

點選藍色框中的button,啟動Android Device Monitor。
這裡寫圖片描述

解決方法

情況一:通過monitor.bat或者Android Studio中圖示啟動時**

  • 第二步:在Android SDK的tools目錄中搜索ddmlib.jar

    當前目錄為Android SDK的tools目錄。

    $ find . -iname *ddmlib*
    ./lib/ddmlib.jar   (不用替換它)
    ./lib/monitor-x86_64/configuration/org.eclipse.osgi/bundles/2/1/.cp/libs/ddmlib.jar123123

    可能會搜出多個,我們要替換的是tools/lib/monitor-x86_64/configuration/org.eclipse.osgi/bundles/2/1/.cp/libs/ddmlib.jar

    有可能你的目錄與這個不同,請以實際目錄位置為準。

  • 第三步:用剛才下載到的ddmlib.jar替換剛搜到的ddmlib.jar

    需要注意的是,替換的時候,先將Android Device Monitor關掉。

  • 第四步:再次開啟Android Device Monitor,就可以看到目錄樹了(如下)

    這裡寫圖片描述

情況二:在eclipse中顯示File Explorer**

前提是下載了ddmlib.jar。

  • 第一步:搜尋eclipse 中的 ddmlib.jar

例如,在我的eclipse中,ddmlib.jar在eclipse/configuration/org.eclipse.osgi/8/0/.cp/libs目錄下。

$ find . -iname ddmlib.jar
./configuration/org.eclipse.osgi/8/0/.cp/libs/ddmlib.jar1212

你的ddmlib.jar所在的位置可能與我的不同,請以實際目錄位置為準。

  • 第二步:用剛才下載到的ddmlib.jar替換剛搜到的ddmlib.jar

  • 第三步:重新開啟eclipse,File Explorer就可以顯示正常了

    這裡寫圖片描述

問題2:關於操作db檔案匯出Failed to pull selection: open failed: Permission denied問題的處理方法

問題描述

在遇到這個問題之前,你可能連data這個目錄都打不開。。

這裡寫圖片描述

解決辦法

對此,解決辦法是去到安卓的adb目錄/Android/sdk/platform-tools下按住Shift右鍵“在此處開啟命令列視窗”,進入命令列視窗後:需要操作的命令有:
1、adb shell進入shell模式

adb shell

2、獲得所有root許可權

su

3、先把資料夾許可權全部開啟

chmod  -R 777 /data/  

4、給裡邊的db檔案許可權設定成可讀可寫可操作

chmod  777 /data/data/(專案全包名)/databases/xxx.db

5、cd命令進入db檔案所在目錄:

cat my_datbase_name.db > /sdcard/my_database_name_temp.db

複製內容到一個temp檔案中去,這一步很關鍵,目的是為了繞過有時候對檔案直接pull的話,會找不到檔案目錄這一後面會出現的情況。

6、執行兩次exit直接返回到正常的終端提示符

7、將temp檔案拉出來,拉到你adb.exe存放的目錄下,避免直接與資料庫檔案做操作,或者你也可以新建一個目錄(事先新建好喲)
adb pull /sdcard/my_database_name_temp.db (其他目錄如 F:/db)

補充上面提到的會出現的問題:
你如果用命令 adb pull /data/data/全包名/databases/xxx.db將資料庫db檔案拉出來的話,會找不到目錄的
error
提取到的資料庫檔案可以用SQLite開啟,直接拖拽到裡面就可以顯示
下面是我成功提取資料庫檔案sims.db的截圖:
這裡寫圖片描述

問題3:利用ddms檢視應用的sharedprefence檔案

問題描述:

當我使用DDMS檢視file系統的時候,發現我明明有這個應用,為什麼找不到這個應用呢?好神奇!

解決辦法

沒辦法,既然GUI不給力,我們只能進入命令列來看了

D:>adb shell
zsl865:/ $ su
zsl865:/ # chmod -R 777 data/data/

後邊基本就是linux的操作了,然後打開了data/data居然找到了之前的應用,然後進去之後發現了對應的sp檔案