2010-12-01 72 views
2

为了发布我的Android应用程序,我必须从开发过程中使用的com.example.project更改软件包名称。 尽管在更改包名后,我无法再访问sqlite数据库。我尝试通过.adb访问它,它适用于旧的软件包名称,但不适用于新的软件包名称。如何在Android中更改包名后访问我的Sqlite数据库?

如何访问数据库为了把它放在新的包下?我有一个旧的未改变的项目文件的副本。

非常感谢! AK

+0

你创建从代码数据库?或者你已经有了sqlite文件? – Cristian 2010-12-01 17:39:43

+0

我在项目中使用了它,我唯一做的是更改软件包名称。当我从命令提示符访问它时,它在它的旧包名下。有没有办法移动它,或复制它? – kakka47 2010-12-01 18:00:36

回答

3

这是模拟器还是手机?如果您在手机上的发展,并已建立了一个数据库,你想:

  • 如果手机根植 - 使用文件资源管理器(或DDMS查看文件浏览器),并从/data/data/com.example.prackage/databases得到它,并把它放在你的新的包文件夹。

  • 如果手机没有固定 - 如果您有原始软件包代码,请创建备份脚本以复制文件夹/data/data/com.example.prackage/databases中的sqlite文件 - 您还需要知道数据库文件名。然后在新软件包中创建代码的反转,将文件从SDCard复制到新软件包DB文件夹。

  • 如果在模拟器上 - 使用DDMS视图文件资源管理器从数据库文件夹中获取文件。

此链接可以帮助备份和恢复:

Backup/Restore Sqlite to SDCard

UPDATE

一种方法,使用DDMS文件资源管理器

  1. 导航到数据/ data/com.old.package/databases
  2. 选择数据库文件
  3. 单击软盘上有一个箭头(文件浏览器的右上角)
  4. 保存文件的地方,你知道的。
  5. 导航至data/data/com.new.package/databases
  6. 用箭头点击电话。
  7. 查找刚刚保存的文件。

这应该将数据库复制到新包中,以便您可以像以前那样使用它。

以上是使用从命令提示符亚行的DB文件从旧的包复制到新包的GUI,像这样:

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

这应该使的副本旧的数据库,那么:

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

相关问题