解决打开Android Device Monitor一系列问题

  • Post author:
  • Post category:其他



问题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中图标启动时**


  • 第一步:下载ddmlib.jar


    ddmlib.jar的下载位置


    文件大小:282KB。

    或者,百度云:

    http://pan.baidu.com/s/1sl4KaOP

    提取密码:sygc


  • 第二步:在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文件



版权声明:本文为qq_27035123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。