eclipse无法访问genymotion模拟器下/data/data文件解决方案
2016-02-17 16:06
399 查看
下载地址:https://cloud.genymotion.com/page/launchpad/download/
链接可能会失效,所以大家百度到genymotion的官网去下载就可以了。
但是有个问题就是如果用这个模拟器测试数据库应用,在eclipse里面的文件管理器的视图中,是不能打开data文件夹的。相信很多人也都遇到过这个问题。其实问题的原因只是eclipse没有访问这个文件夹的权限而已。说到这里,因为Android是基于Linux的,所以我们要了解一下Linux中关于文件的知识了。
首先,我们要运行一个genymotion的模拟机。注意只运行一个。在把你的应用部署到该模拟机之后。我们打开Windos的命令行窗口。输入 adb shell。来运行一个Android的迷你Linux 终端环境。
我们可以通过ls -al命令来查看模拟机中文件的详细信息。
我们以其中一行为例,比如data那一行。
注意红线标注的地方:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
d | r | w | x | r | w | x | - | - | x |
当你点击的时候,你会发现你,没有反应。data文件夹不会展开。其实并不是因为这是空文件夹,只是你没有这个权限而已。因为eclipse对于这个文件来说是“其他人”的身份。它的权限是 - - x 。也就是说没有可读(r)的权限。不过我们在命令行adb shell里面是所有者的身份。现在我们修改这个文件夹的访问权限。要修改,我们要切换到root的模式,在命令行输入
su 。默认是没有密码的,所以我们直接成为了root用户。
当前导符 $ 变成了 # 就说明,你现在是root用户了。然后还要了解的是 权限的数字表示方法。刚才不是三位为一组嘛,可以用4 2 1来表示对应权限。比如 r w x 就是 421。
4000
- - x 就是 0 0 1。所以r w x r w x - - x,就是4 2 1 4 2 1 0 0 1。简化版就是三位相加。表示为 7 7 1.(7 =4 +2 +1)。我们只需要该文件夹对 “其他人” 可读,就行了。所以只需将 - - x 变成 r - x,也就是4 0 1,即5。所以可执行修改访问模式的命令
chmod 775 data ,然后再通过 ls -al命令查看一下。
可以看出权限已经修改了。在看eclipse的文件管理器。data文件夹已经可以展开了。
到了这里,只是data文件件可以访问。里面的子目录的权限并没有相应的改变。我们可以进入通过 cd命令,进入data文件夹,再按照上面的
命令去依次修改你要访问的文件夹的权限。我们接着要修改子目录data的属性。方法同上。然后进入第二个data文件夹,可以看到各个应用的文件夹。
找到自己的刚才安装的应用的文件夹。再依次对子目录修改权限就能看到你的数据库文件了。然后你可以选择导出这个文件。
如果你觉得,这样一步一步的太麻烦。你也可以批量修改文件夹及其子文件夹的属性。比如在最开始的data文件夹。你可以使用命令 chmod -R 775 data 其中参数-R的意思就是
递归(Recursive)的意思。这个递归在linux里面还是很常用的。比如删除非空的文件夹的时候。
转载自:http://www.xuebuyuan.com/2070224.html
相关文章推荐
- Java ClassLoader机制
- java实现mysql数据库备份与还原
- Java读取二进制文件
- 设置Eclipse中的tab键为4个空格的完整方法
- java单例模式的5种实现
- 使用JAVA发现的一些小问题
- java打印帕斯卡三角形
- Struts2 新特性
- Java笔记---生成器Generator
- java后台图片大小压缩
- Java学习笔记2016.2.17 方法参数传递
- JList监听,选择会得到两次事件
- java连接sqlserver
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)开发项目
- 彻底解决Spring MVC 中文乱码 问题
- Hibernate反向工程-——Myeclipse从数据库反向生成Java类
- JAVA字符串格式化-String.format()的使用
- Java JVM:垃圾回收问题
- SpringMVC 初探--前言
- java连接PostgreSQL数据库出现问题