2

更新/升级 Android 应用程序时,您必须:

  • 更新清单中的版本
  • 更新 SQLiteOpenHelper 的 OnUpgrade 方法
  • 据我所知就是这样

当我想调试升级本身时卡住了

我的问题和尝试的原因:

  • 我的数据库已更改,由于某种原因我的 onUpgrade 没有帮助,我需要对其进行调试
  • 软件包已签名,因此我必须先对其进行签名,然后才能覆盖应用程序的现有版本
  • 如果我对其进行签名并将其安装到另一个应用程序上,它会立即崩溃,但是我无法调试它,因为它是直接从 apk 安装的,而不是从 eclipse 调试控制台安装的

问题:

  • 我收到著名的“由于不同的应用程序签名导致重新安装失败”错误。

我的小研究:

  • 这已在此处的许多帖子中有所介绍(至少我读过 10 篇)

  • 他们中的大多数人都提出要删除该应用程序,但这也会导致数据库也被删除,这违背了这一点

  • 其中一些提供引用 %USER_HOME%/.android/ 中名为 debug.keystore 的文件

  • 其他人提到你可以用 adb 做什么

  • 我想要的唯一接近的答案是在eclipse中的设备选项卡下调试,但我不能

4

1 回答 1

0

如果您仍然可以访问旧版本的应用程序源代码,请添加一些开发菜单选项来备份/恢复数据库。使用您的发布密钥签名,然后使用该应用程序备份数据库。

然后将相同的代码添加到您正在开发的新应用程序中,您将能够恢复数据库,然后使用您的调试密钥尝试升级过程。这只是意味着您必须暂时注释掉升级过程以及因此而失败的任何事情,直到您拥有一个可以工作的旧版本的数据库以及正在调试的新应用程序。

这是我用来备份数据库的方法的链接。

于 2013-09-02T08:05:13.933 回答