为了发布我的 Android 应用程序,我必须更改我在开发期间使用的 com.example.project 的包名称。 虽然,在我更改包名称后,我无法再访问 sqlite 数据库。我尝试通过 .adb 访问它,它适用于旧包名,但不适用于新包名。
我怎样才能访问数据库以便将它放在新包下?我有一份未更改的旧项目文件的副本。
非常感谢! AK
最佳答案
这是在模拟器上还是在手机上?如果您正在手机上开发并且已经建立了您想要的数据库:
如果手机已 root - 使用文件资源管理器(或 DDMS View 文件资源管理器)并从
/data/data/com.example.prackage/databases
获取它并将其放入你的新包文件夹。如果手机未 root - 如果您有原始包代码,请创建备份脚本以从文件夹
/data/data/com.example.prackage/databases
- 您还需要知道数据库文件名。然后在新包中创建相反的代码,将文件从 SDCard 复制到新包 DB 文件夹。如果在模拟器上 - 使用 DDMS View 文件资源管理器从数据库文件夹中获取文件。
此链接可能有助于备份和恢复:
Backup / Restore Sqlite to SDCard
更新
一种方法,使用 DDMS 文件资源管理器
- 导航到 data/data/com.old.package/databases
- 选择数据库文件
- 单击带有箭头的软盘(文件资源管理器的右上角)
- 将文件保存在您知道的地方。
- 导航到 data/data/com.new.package/databases
- 点击带有箭头的电话。
- 找到您刚刚保存的文件。
这应该将数据库复制到新包中,以便您可以像以前一样使用它。
上面是一个 GUI,用于在命令提示符下使用 adb 将 DB 文件从旧包复制到新包,类似于:
adb pull/data/data/com.example.package/databases C:\tempdb
那应该复制旧数据库,然后:
adb push C:\tempdb/data/data/com.example.package/databases
关于android - 在 Android 中更改包名称后如何访问我的 Sqlite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4327171/