Android 为什么我的签名apk不会安装?

Android 为什么我的签名apk不会安装?,android,Android,我已经开发了一段时间的应用程序,并通过Eclipse使用运行方式->*Android应用程序*在真实设备上运行。 现在我第一次尝试将它分发给一些测试版用户。 我使用Eclipse创建了一个已签名的应用程序,使用了通过向导生成的新密钥库。这似乎工作得很好,当我使用Jarsign检查时,我得到消息“Jar Verified”,尽管也有一些警告。这些是“此Jar包含证书链未验证的条目”和“此Jar包含不包含时间戳的签名” 然后我将生成的apk复制到设备上并打开它。但收到一条消息“此应用程序未安装”。在

我已经开发了一段时间的应用程序,并通过Eclipse使用运行方式->*Android应用程序*在真实设备上运行。 现在我第一次尝试将它分发给一些测试版用户。 我使用Eclipse创建了一个已签名的应用程序,使用了通过向导生成的新密钥库。这似乎工作得很好,当我使用Jarsign检查时,我得到消息“Jar Verified”,尽管也有一些警告。这些是“此Jar包含证书链未验证的条目”和“此Jar包含不包含时间戳的签名”

然后我将生成的apk复制到设备上并打开它。但收到一条消息“此应用程序未安装”。在日志cat中,我可以看到: “程序包在条目处没有证书;忽略!”

我发现有些人建议回到JDK 6(我以前有7个),但那没有帮助。 一些人认为这可能是由于清单中存在重复的活动,所以我彻底检查了清单

我发现,如果我重命名apk,使其不再与包的最后一部分完全相同,它会突然工作

因此,如果包是com.mydomain.myapp,而apk是myapp.apk,我会得到错误,但是如果是myapp\u debug.apk,它安装得很好


我觉得这非常令人困惑,而且有点令人担忧。我希望最终发布此应用程序,但我不确定我是否做错了什么。

根据您的重命名使其工作说明,您已经在设备上安装了一个具有相同软件包名称的应用程序,但使用了不同的证书(可能是用于eclipse启动安装的调试证书)进行了签名

在安装发布版本之前,必须先删除现有安装。您可以从“设置”菜单或表单的ADB命令执行此操作

adb uninstall your.package.name
请注意,此删除操作将清除应用程序存储的私有数据-这就是为什么您必须这样做的部分原因,以防止冒名顶替者(自然具有不同的证书)轻松抓取真实应用程序留下的数据


还请记住,当以这种方式向其他人分发应用程序时,他们需要在其“设置”菜单中允许未知/非市场来源。

Id建议删除所有警告,如果以前安装过应用程序,也请尝试先卸载该应用程序。如果证书从调试更改为发布。它应该安装,但它应该完全取代其他应用。。。但现在可能已经改变了。你的答案听起来不错,但我确实尝试过卸载调试版本,而且我还使用了以前从未安装过该应用的其他设备进行了测试。相同的结果:将文件命名为与包相同的名称,不起作用。任何其他名称,都可以。