Android studio关于真机调试DDMS中的data文件夹打不开的解决方法

由于做开发的时候想打开查看数据库存放的内容,在eclipse中数据库文件默认就在/data/data/应用包名/databases/数据库名,而用Android studio打开DDMS下面找时发现点击data下拉按钮没有任何反应(如下图所示)后来找了很久才发现是权限问题,需要修改文件的权限:

 

上面是未修改过的,可以看到data文件夹的读写权限只对用户组内的用户开放,对其他用户不开放,所以我们只需要把读写权限赋予其他用户即可,具体步骤如下所示:

1、进入Android SDK安装目录,找到platform-tools点击进去,按shift键并点击鼠标右键选择在命令行打开(如下图所示):

点击后弹出下图所示命令框:

 

2、输入adb shell 回车,然后再输入 su 回车进入权限root模式,如下图所示:

 

3、输入chmod -R 777 /data/ 回车即可。(-R 是对该目录下所有文件夹都执行此操作,也可以不输入-R,直接chmod 777 /data/ 也是一样的)

 

再回到 DDMS 中就会发现data文件夹可以打开了,就可以读写文件了,如下图所示:

 

但发现数据库外层的data还无法打开,继续root,知道数据库文件夹/data/data/应用包名/databases/数据库名 都能打开为止(如下图所示):

 

再回到 DDMS 中就会发现 /data/data/应用包名/databases 文件夹可以打开了,如下图所示:

接下来按照教程把这个文件导出到电脑桌面时(点击按钮1,提示错误如2),遇到了如下问题:

 

接着又是一通网上找答案,网上给出的解决方法大部分都是修改文件的权限,可是这个文件的权限已经是最大权限了呀。网上提出了可以使用adb pull命令把这个文件复制出来,我按照网上给的复制命令进行了测试,结果没有成功。

 

又经过一阵不懈的努力,终于找到了解决方法:模拟机默认下是没有读写权限的,如果需要对模拟器中的文件进行操作,首先要把模拟器改成能够读写权限。修改模拟器权限的指令如图2所示为:先输入adb root指令,在使用adb remount指令。出现remount success表示模拟器权限修改成功。

 

修改了模拟器的读写权限后,使用adb pull命令就可把复制文件到电脑桌面了(我这里复制了整个文件夹里面的文件),也可以使用导出功能直接导出文件了(这里可能要重新打开以下Android Device Monitor)。(点击按钮1导出data文件成功了)

好了,看到这里你已经把我解决这个问题的坎坷过程了解了。总结一下吧,在File Explorer中看到文件树之后,接下来的你想要对文件进行任何操作只需要获取root权限就可以了。也就是在命令行中输入adb root命令。执行这个命令后你就可以对目录中的文件进行任何操作了,而不需要再修改文件权限这下不必要的操作了。

 

如果还是无法导出db文件  请继续向下看

 

关于操作db文件导出Failed to pull selection: open failed: Permission denied问题的处理方法

在遇到这个问题之前,你可能连data这个目录都打不开。。

这里写图片描述

对此,解决办法是去到安卓的adb目录\Android\sdk\platform-tools下按住Shift右键“在此处打开命令行窗口”,进入命令行窗口后:需要操作的命令有: 
1、adb shell进入shell模式

adb shell
  • 1

2、获得所有root权限

su
  • 1

3、先把文件夹权限全部打开

chmod  777 /data/  
  • 1

4、给里边的db文件权限设置成可读可写可操作

chmod  777 /data/data/(项目全包名)/databases/xxx.db
  • 1

5、cd命令进入db文件所在目录:

cat my_datbase_name.db > /sdcard/my_database_name_temp.db
  • 1

复制内容到一个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的截图: 
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值