不同的应用签名问题android?

时间:2012-05-23 13:44:48

标签: java android install uninstall

在我的项目中,我已经创建了一个应用程序,现在稍后当我尝试安装新应用程序时,它要求完全卸载应用程序。以前的应用程序,但我不能这样做因为我要重复使用前一个应用程序留下的数据我无法修复不同的应用程序签名。问题我可以将其安装到设备而不会毫发展无意。

  

I'm to retain application data

[2012-05-23 19:09:56 - iCam] Re-installation failed due to different application signatures.
[2012-05-23 19:09:56 - iCam] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2012-05-23 19:09:56 - iCam] Please execute 'adb uninstall iCam.Cam' in a shell.
[2012-05-23 19:09:56 - iCam] Launch canceled!

4 个答案:

答案 0 :(得分:4)

您需要使用与设备上已有的签名相同的签名安装应用程序。

您需要确定应用程序在设备上的安装方式。您至少有两个选择:

  • 使用了Eclipse的默认调试签名密钥(密钥库androiddebugkey中的密钥~/.android/debug.keystore
  • 在File-> Export ...
  • 期间使用了其他密钥库

如果您使用在bin目录中生成的二进制文件(或直接从Eclipse安装apk),则使用默认密钥库并创建兼容的apk,您需要在创建第一个apk时找到位于此位置的同一文件: ~/.android/debug.keystore。然后使用File->Export...并选择此文件。输入android密码,选择androiddebugkey并再次输入android密码。最后选择目标apk名称并单击Finish

如果无法找到以前的签名密钥,您可以尝试:

  • 备份应用程序数据
  • 卸载应用程序
  • 安装具有不同签名的应用程序(现在成功)
  • 安装回应用程序数据

可以使用TitaniumBackup应用程序备份和恢复应用程序数据。它可能需要有根设备。

答案 1 :(得分:1)

//使用-r通过命令提示符安装,通过保留其数据

重新安装
adb install -r ./yourfolder/MyCam.apk

// adb install options

adb install [-l] [-r] [-s] <file> - push this package file to the device and install it
                                 ('-l' means forward-lock the app)
                                 ('-r' means reinstall the app, keeping its data)
                                 ('-s' means install on SD card instead of internal storage)

答案 2 :(得分:1)

您必须使用您上次构建时签署的相同签名。如果在Eclipse中重置调试签名,或者如果使用新的发行密钥对应用程序进行了签名,则无法更新。解决此问题的唯一方法是使用与上次AFAIK签名时相同的密钥。

但是,在DDMS中,您可以从SD卡中提取数据,卸载应用程序,重新安装,然后重新放回数据。我从来没有试过这个,但我认为这可能是你唯一的选择。

答案 3 :(得分:1)

我遇到了同样的问题。幸运的是,我在这个应用程序中有一个“to-file”备份功能。你需要相同的签名。你使用Debug-Keystore吗?对于现实世界的使用,这不是一个好主意。您需要使用原始创建者使用的相同Debug-Key。