在Android中更改包名后如何访问我的Sqlite数据库?

时间:2010-12-01 17:33:01

标签: android sqlite package rename

为了发布我的Android应用程序,我必须从开发过程中使用的com.example.project更改包名称。 虽然,在我更改了包名后,我再也无法访问sqlite数据库了。我尝试通过.adb访问它,它可以使用旧的package-name而不是新的package-name。

如何访问数据库以便将其置于新包中?我有一份旧的未更改的项目文件的副本。

非常感谢! AK

1 个答案:

答案 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文件资源管理器的一种方法

  1. 导航到data / data / com.old.package / databases
  2. 选择数据库文件
  3. 使用箭头(文件资源管理器的右上角)
  4. 单击软盘
  5. 将文件保存在您知道的地方。
  6. 导航到data / data / com.new.package / databases
  7. 点击带箭头的手机。
  8. 找到刚刚保存的文件。
  9. 这应该将数据库复制到新包中,以便您可以像以前一样使用它。

    以上是一个GUI,用于在命令提示符下使用adb将DB文件从旧包复制到新包中,如下所示:

    adb pull /data/data/com.example.package/databases C:\tempdb

    那应该制作旧数据库的副本,然后:

    adb push C:\tempdb /data/data/com.example.package/databases