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

标签 android sqlite package rename

为了发布我的 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 文件资源管理器

  1. 导航到 data/data/com.old.package/databases
  2. 选择数据库文件
  3. 单击带有箭头的软盘(文件资源管理器的右上角)
  4. 将文件保存在您知道的地方。
  5. 导航到 data/data/com.new.package/databases
  6. 点击带有箭头的电话。
  7. 找到您刚刚保存的文件。

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

上面是一个 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/

相关文章:

java - 不同风格的 Android 应用程序的动态应用程序流

android - 将用户数据同步到用户名/密码帐户

Android:HttpURLConnection 抛出 EOFException

python - 导入错误 : No module named _sqlite3 with Python 2. 7

python - 将数据从 tweepy 保存到 sqlite

java - 如何使用我的 xml 布局文件创建自定义 ListView?

c++ - 构建过程中的 QT 和 SQLITE 问题

namespaces - Sublime Text - 无需输入即可自动拉入命名空间?

android - 在包 'layout_columnWeight' 中找不到属性 'android' 的资源标识符

java - 在命令行指定的包中运行所有 TestNG 测试