2012-02-27 79 views
0

我想使用SQLite浏览器编辑我的应用程序的数据库。我可以使用adb shell(sqlite3)编辑数据库,但我宁愿使用GUI编辑它,而不是使用命令行。如何从模拟器获取数据库到本地驱动器?截至目前我已经尝试过:从模拟器(data/data/package_name/databases)获取SQLite数据库到本地驱动器

1)使用adb pull命令将数据库从模拟器拉到我的本地驱动器。

ADB拉数据/数据/ com.myapps.quiz C:/

这个命令执行正确,但我不能够找到我指定的本地驱动器中的文件或目录。

2)使用DDMS透视图在文件资源管理器中查找文件,但每次进入数据/数据目录时,我只能看到名为“con”的目录。我甚至试图拉动整个数据/数据目录,但我找不到存储数据库的包的名称(com.myapps.quiz)。

缺少什么我在这里?你可以提供的任何帮助将是最有帮助的!

回答

1

你的数据库对你的软件包是安全的,所以你不能直接得到这个。

我有一个解决这个问题。

我要做的就是去外壳和运行作为我的包和复制数据库中使用猫

adb shell 
run-as your.package.name 
cd databases 
cat your_database.db > /mnt/sdcard/your_database.db 

到SD卡,我使用文件资源管理器

+0

谢谢。这看起来很有希望,但现在我遇到了许可问题。它说“权限被拒绝”。无论如何,我可以编辑mnt/sdcard目录的权限吗? – user1183460 2012-02-27 21:34:02

+0

我不确定,但我认为你的软件包没有在Manifest中定义的SDCard的写权限。这就是它显示权限被拒绝的原因。尝试在清单中提供android.permission.WRITE_EXTERNAL_STORAGE使用权限。 – 2012-02-28 04:10:27

+0

好的,我把它放在Manifest文件中,但没有用:-(。我确信它非常简单,如果你还有其他建议,那就太棒了,我认为这些权限可能是DB文件,为什么我不能访问这个数据库? – user1183460 2012-03-02 04:24:41

0

拉从SD卡的文件确定你连接到DDMS中的模拟器实例,而不是实际的设备?我一直能够从

data/data/com.my.package/databases/mydb.sqlite 

目录推拉SQLite数据库,我不能认为这将覆盖任何设置。另一种方法是根据实际的电话进行操作,然后您就可以将手机中的任何内容移动到电脑上。

+0

当我访问数据库的程序正在运行时,我进入了Eclipse中的DDMS视图。我是否连接到模拟器实例在DDMS中,我知道这很奇怪,当我进入数据/数据目录时,我只能看到名为“con”的文件夹,有什么建议? – user1183460 2012-03-02 04:13:23

+0

你有没有尝试过通过adb连接在shell中。然后运行adb -devices,你应该得到类似“emulator-5554”的东西,如果没有,那么你的问题会更广泛,我会重新安装eclipse和所有的android工具和sdks。 adb -e shell ls/data/data这将列出th e目录。发回你得到的输出。其他信息可在http://developer.android.com/guide/developing/tools/adb.html找到 – 2012-03-02 09:59:40

相关问题