为什么在类路径更改后Android中的应用签名会发生变化?

时间:2010-03-16 23:29:41

标签: android classpath reinstall

我有一个Android项目,分为三个不同的应用程序,app-1app-2app-3,它们适用于一些自定义项。目前存在大量代码重复,使维护成为一场噩梦:在其中一个分支中进行更改,然后合并其他两个分支。

因此,我们创建了一个名为app-core的库项​​目,该项目将大部分重复的代码排除在外。到目前为止一切都很好。

当我将其启动到已经加载应用程序的模拟器中时(在重构之前),我得到了这个例外:

Re-installation failed due to different application signatures

不同的签名?但我只是在.classpath中添加了一行来链接到app-core Java项目!

主要问题是:现有用户是否也会受到这种困扰?

旁边的问题:为什么它是一个不同的签名?

4 个答案:

答案 0 :(得分:12)

数字签名由签署应用程序的计算机上存在的签名密钥驱动。如果开发人员A使用标准调试密钥编译应用程序并将其安装在模拟器中,则尝试安装应用程序的其他变体 - 一个使用生产密钥签名,一个使用开发人员B的调试密钥签名,等等 - 同样的模拟器,你会得到那个错误。

  

主要问题是:现有的   用户会为此感到困扰   太?

您是否拥有用于现有用户正在使用的应用版本的生产签名密钥?如果是,那么应该没有问题。如果不是,你就搞砸了。

答案 1 :(得分:1)

在设备上卸载应用程序,然后再次运行代码,它将起作用。它发生在我身上,我尝试了同样的事情,现在它正常工作。

答案 2 :(得分:0)

对于此问题,您需要检查(Window-> Preferences-> Android-> build)下是否使用了正确的密钥。 你可以从应用程序的android.mk文件中查看。 在放置正确的密钥路径时,清理并构建项目以避免此错误。

答案 3 :(得分:0)

我遇到过类似的问题。如果您要在设备上安装它,那么在从eclipse安装之前,您需要在设备上卸载该应用程序。它肯定会解决你的问题。

干杯