相同的Android项目在调试模式下构建,有时使用Eclipse,有时使用ant(在构建机器上)。
如果我首先安装ant构建,然后尝试启动Eclipse调试,Eclipse控制台将显示
[2012-03-20 13:32:26 - myproject]由于应用程序签名不同,重新安装失败。[2012-03-20 13:32:26 - myproject]您必须完全卸载该应用程序。警告:这将删除应用程序数据!
[2012-03-20 13:32:26 - myproject]请在shell中执行'adb uninstall com.myproject'。[2012-03-20 13:32:26 - myproject]已取消启动!
如果我用相反的方法来做,即用Eclipse调试(包括安装apk),然后尝试从命令行安装ant build,我会得到:
失败[安装解析失败证书不一致]
我的证书/签名有什么问题?
8条答案
按热度按时间6ju8rftf1#
对我来说,问题是我已经用另一个密钥安装了相同的应用程序。卸载旧的应用程序解决了问题,如下所示:
https://stackoverflow.com/a/10280878
nhn9ugyo2#
旧安装的. apk与将要安装的新证书不同,或者它已使用不同的密钥安装在您的设备中。这意味着您的应用程序以前是从另一台计算机安装的,该计算机为其提供了不同的凭据。
所以解决办法是:
uninstall the existing .apk
然后
re-install the new .apk
0h4hbjxa3#
问题是apk文件(在Eclipse和ant构建期间)已经使用不同的证书进行了签名。要使在不同机器上构建的构建之间的签名一致,请将调试密钥库放在版本控制中:
如果您倾向于从自己的计算机和构建计算机交叉安装构建版本,这将非常方便。
hgb9j2n64#
如果您的构建系统是gradle,只需使用以下命令在Windows中卸载它:
或者在Linux中:
然后:
这是一个认证检查安装和卸载在同一个软件包在Android中。如果你是使用两个不同的建设PC(计算机)连接到同一部手机,你会得到这个错误,当你连接你的手机与这些不同的PC。最好的选择是绑定一个PC与一个物理手机。
ukxgm1gy5#
打开Eclipse的首选项。打开左侧列表中的Android部分。在Android下的“自定义调试存储”旁边选择“构建”区域,导航到Android SDK安装下的密钥库,而不是Eclipse在您的主目录下选择的密钥库。
现在android ant build和eclipse使用相同的密钥库。
edqdpe6u6#
在IntelliJ中,虽然你可以选择一个调试密钥库来调试签名你的应用程序,但你不能输入密钥库密码或keypassword。你可以导出你的发布证书并将它们导入到你的调试密钥库,并将密钥库和密钥密码更改为“android”。我已经为它准备了一步一步的说明:http://www.denizoguz.com/2013/01/12/failure-install_parse_failed_inconsistent_certificates/
qojgxg4l7#
其他解决方案在应用程序的build. gralde文件中增加版本代码
立即同步
构建干净的项目
运行应用程序
yks3o0rb8#
在翻盖手机(例如LG Classic Flip)上,应用程序ID需要以
com.android.cts
开头。并确保namespace
和applicationId
在