问题1:解决打开Android Device Monitor之后一片空白

问题描述

将手机升级到Android 7.0后,打开android Device Monitor(DDMS)后,File Explorer中显示一片空白。如下:

Android Device Monitor在哪儿 android device monitor 启动错误_Android

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

Android Device Monitor在哪儿 android device monitor 启动错误_Android_02

不管用monitor.bat(注ddms.bat已弃用)还是通过Android Studio中的图标启动(如下图),都是一样的问题。

点击蓝色框中的button,启动Android Device Monitor。

Android Device Monitor在哪儿 android device monitor 启动错误_jar_03

解决方法

情况一:通过monitor.bat或者Android Studio中图标启动时**

$ 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这个目录都打不开。。

Android Device Monitor在哪儿 android device monitor 启动错误_eclipse_04

解决办法

对此,解决办法是去到安卓的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文件拉出来的话,会找不到目录的

Android Device Monitor在哪儿 android device monitor 启动错误_android studio_05


提取到的数据库文件可以用SQLite打开,直接拖拽到里面就可以显示

下面是我成功提取数据库文件sims.db的截图:

Android Device Monitor在哪儿 android device monitor 启动错误_eclipse_06

问题3:利用ddms查看应用的sharedprefence文件

问题描述:

当我使用DDMS查看file系统的时候,发现我明明有这个应用,为什么找不到这个应用呢?好神奇!

解决办法

没办法,既然GUI不给力,我们只能进入命令行来看了

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

后边基本就是linux的操作了,然后打开了data/data居然找到了之前的应用,然后进去之后发现了对应的sp文件