Android 在代码更改、windows升级和重新安装IDE后安装.apk时出现问题

Android 在代码更改、windows升级和重新安装IDE后安装.apk时出现问题,android,reinstall,signatures,Android,Reinstall,Signatures,这是我的第一个问题,但我首先要感谢社区在创建一些Android应用程序的过程中帮助我。我不是一个专业的程序员,我做的大部分东西只是为了好玩,但是一个Android应用程序是我为一个客户创建的一个真实的项目,我遇到了一些真正的麻烦,需要一些帮助 我制作的应用程序基本上接收一些数据,将其存储到SQL数据库中,并在必要时使用查询从数据库中提取各种信息并显示出来。如果需要进行任何调整,我会进行调整,然后再发送一个。apk。没问题,直到现在 我最近升级到了Windows 10,将笔记本电脑的RAM增加了一

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

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

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

X应用程序未安装

已安装具有冲突签名的同名现有包。“

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


谢谢大家!

在这一点上,假设您找不到/获取原始密钥,最好的办法是使用备份程序(或最坏的情况)备份他的/data/data/文件夹。然后,您可以卸载原始应用程序并重新安装新版本。然后,您可以恢复/adb将旧文件夹的内容推送到手机,以恢复数据文件。这可能需要根它


如果可能的话,我会先在另一部手机上测试一下,以确保它能正常工作,因为你只有一次机会。将来我也会将您的密钥保存在源代码管理repo中。

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


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

您是否使用同一密钥签署了应用程序的发布版本?签出虽然不匹配的密钥可能会导致此问题,但在将来,如果客户端重要数据的唯一副本当前以无法直接访问的格式存在于单个平板电脑上,我建议在应用程序中添加导出或备份功能。@ShobhitPuri,我根本没有创建密钥或对应用程序签名。我刚刚创建了项目和apk,然后将其和任何其他升级发送给客户。@MattiVirkkunen和Shobhit Puri,谢谢,我会检查的out@GabeSechan非常感谢。那么,你认为我在这一点上完全无能为力吗?你是否使用相同的密钥来签署应用程序的发布版本?签出虽然不匹配的密钥可能会导致此问题,但在将来,如果客户端重要数据的唯一副本当前以无法直接访问的格式存在于单个平板电脑上,我建议在应用程序中添加导出或备份功能。@ShobhitPuri,我根本没有创建密钥或对应用程序签名。我刚刚创建了项目和apk,然后将其和任何其他升级发送给客户。@MattiVirkkunen和Shobhit Puri,谢谢,我会检查的out@GabeSechan非常感谢。所以你认为现在我什么都做不了吗?谢谢,我可以在我的平板电脑上测试这个,我想我也可以在另一个平板电脑上测试。就像我说的,我不是职业选手,这对我来说是一个巨大的疏忽。你知道有没有类似于使用Android设备监视器从平板电脑上推拉数据库的方法?例如,为了测试我的数据和查询,我从Genymotion模拟设备中提取数据库,并在SQLiteman中打开它,以查看数据、运行查询等。您可以在应用程序中设置Stetho,以便轻松查看和测试查询。谢谢,我可以在我的平板电脑和另一台平板电脑上测试。就像我说的,我不是职业选手,这对我来说是一个巨大的疏忽。你知道有没有类似于使用Android设备监视器从平板电脑上推拉数据库的方法?例如,为了测试我的数据和查询,我从Genymotion模拟设备中提取数据库,并在SQLiteman中打开它,以查看数据、运行查询等。您可以在应用程序中设置Stetho,以便轻松查看和测试查询。facebook.github.io/stetho