为了发布我的Android应用程序,我必须从开发过程中使用的com.example.project更改包名称。 虽然,在我更改了包名后,我再也无法访问sqlite数据库了。我尝试通过.adb访问它,它可以使用旧的package-name而不是新的package-name。
如何访问数据库以便将其置于新包中?我有一份旧的未更改的项目文件的副本。
非常感谢! AK
答案 0 :(得分:3)
这是在模拟器还是手机上?如果您正在使用手机进行开发并构建了所需的数据库:
如果手机已植根 - 请使用文件资源管理器(或DDMS视图文件资源管理器)并从/data/data/com.example.prackage/databases
获取并将其放入新的软件包文件夹中。
如果手机没有root权限 - 如果您有原始包裹代码,请创建一个备份脚本以从文件夹/data/data/com.example.prackage/databases
复制sqlite文件 - 您还需要知道数据库文件名。然后在新包中创建代码的反向,将文件从SDCard复制到新包DB文件夹。
如果在模拟器上 - 使用DDMS视图文件资源管理器从数据库文件夹中获取文件。
此链接可能有助于备份和恢复:
Backup / Restore Sqlite to SDCard
更新
使用DDMS文件资源管理器的一种方法
这应该将数据库复制到新包中,以便您可以像以前一样使用它。
以上是一个GUI,用于在命令提示符下使用adb将DB文件从旧包复制到新包中,如下所示:
adb pull /data/data/com.example.package/databases C:\tempdb
那应该制作旧数据库的副本,然后:
adb push C:\tempdb /data/data/com.example.package/databases