代码更改、Windows 升级和 IDE 重新安装后无法安装 .apk

Posted

技术标签:

【中文标题】代码更改、Windows 升级和 IDE 重新安装后无法安装 .apk【英文标题】:Trouble installing .apk after code change, windows upgrade, and IDE reinstall 【发布时间】:2016-02-23 23:38:12 【问题描述】:

这是我关于 SO 的第一个问题,但我首先要感谢社区在创建几个 android 应用的过程中帮助我。我的职业不是程序员,我做的大部分东西只是为了好玩,但一个 Android 应用程序是我为客户创建的真实项目,我遇到了一些真正的麻烦,需要一些帮助。

我制作的应用程序基本上是接收一些数据,将其存储到 SQL 数据库中,并在必要时使用查询从数据库中提取各种信息,并显示出来。如果需要进行任何调整,我会进行调整,然后再向他们发送另一个 .apk。没问题,到现在为止……

我最近升级到了 Windows 10,将笔记本电脑的 RAM 翻了一番,用 SSD 替换了我的硬盘,并刷新了操作系统。一切,包括 Android Studio,现在都像梦一样运行!!!我的客户要求我进行一些调整,所以我将备份的源代码重新复制到我的项目文件夹中,打开代码,进行修改,然后将 .apk 重新发送给我的客户。他们收到以下消息:

"X 应用未安装

已安装具有冲突签名的同名现有软件包。"

我对应用程序所做的唯一更改是在数据库中添加一个表(当然还有升级数据库版本号),并修改了一些布局以及一些方法和计算等。仅此而已。我上下搜索,甚至在我的平板电脑上复制了相同的错误,但找不到解决方法。我的客户目前有几个月的数据输入到应用程序中,所以他们不能只是卸载它并进行新的应用程序安装。在这一点上我能做些什么吗?此外,我从未做过任何自定义密钥签名,只是编程、制作了 .apk,并且已经发送了许多更新而没有问题。任何帮助将不胜感激。 (我已为我发送的所有不同版本备份了所有项目文件夹和 .apks)

谢谢!

【问题讨论】:

您是否使用相同的密钥来签署应用程序的发布版本?结帐***.com/questions/19959890/… 虽然不匹配的密钥可能会导致此问题,但如果您的客户重要数据的唯一副本当前位于他们无法直接访问的格式。 @ShobhitPuri,我根本没有创建密钥或签署应用程序。我刚刚构建了项目和 apk,然后将其和任何其他升级发送给客户端。 @MattiVirkkunen 和 Shobhit Puri,谢谢,我会去看看 @GabeSechan,谢谢。所以你认为我现在绝对无能为力吗? 【参考方案1】:

此时,假设您找不到/获取原始密钥,您最好的选择是使用备份程序(或 adb pull 最坏的情况)来备份他的 /data/data/ 文件夹。然后您可以卸载原始应用程序并重新安装新版本。然后就可以restore/adb push 旧文件夹的内容到手机来恢复数据文件。这可能需要生根。

如果可能的话,我会先在另一部手机上进行测试,以确保它可以正常工作,因为您只能获得 1 次机会。将来我还会将您的密钥保存在您的源代码管理存储库中。

【讨论】:

谢谢,我可以在我的平板电脑上测试这个,我猜还有另一个。就像我说的,我不是专业人士,这对我来说是一个巨大的疏忽。不知道有没有类似使用Android Device Monitor从平板上推拉数据库的方法?例如,为了测试我的数据和查询,我从 Genymotion 模拟设备中提取数据库,并在 SQLiteman 中打开它,以查看数据、运行查询等。 您可以查看在应用程序中设置 Stetho,以便轻松查看和测试查询。 facebook.github.io/stetho

以上是关于代码更改、Windows 升级和 IDE 重新安装后无法安装 .apk的主要内容,如果未能解决你的问题,请参考以下文章

MSI Windows 安装程序中的“找到模糊匹配”错误 1001

Windows 汇编学习

在 WIX 升级期间重新启动 Windows 服务

IDEA插件开发(13)---Dynamic Plugins

win7配置Windows update一直卡在35%,进入安全模式也是卡在35%?

Arduino IDE ESP32固件安装和升级教程