APK 未安装在设备上

Posted

技术标签:

【中文标题】APK 未安装在设备上【英文标题】:APK does not install on device 【发布时间】:2015-04-27 14:39:38 【问题描述】:

我最近在 Eclipse 中复制并粘贴了一个旧的 android 应用程序项目。此后,我对项目进行了一些更改,包括重构>重命名项目,包括项目名称和包名称。到目前为止,在模拟器中运行这个修改后的重复项目时,一切似乎都很好。

但是当我尝试在我的设备上(从 Eclipse)运行它时,它不起作用,因为设备上安装了原始的旧 android 应用程序项目。

Eclipse 提示 'Re-Installation failed due to different application signatures.您必须完全卸载应用程序。警告:这将删除应用程序数据!要卸载吗?'

我没有。

但我导出了重复修改项目的未签名 apk 并尝试将其安装在设备上,但它再次失败。我卸载了旧应用程序并尝试重新安装重复的修改项目,但它再次失败。

我不确定为什么项目名称和包名称与原始名称不同。另外,我注意到重复修改的项目接近 40Mb,而原始项目只有 8MB。如果它是原版的副本(加上一些小的改动,实际上是减少了),它是怎么变得这么大的?我查看了在复制的修改项目的文件夹中,我看到它的dexlibs文件夹中有原始项目的原始APK(带有原始项目名称和包名称)。我在网上做了一些研究,他们说忽略它。

在重复修改项目的APK中,果然是比原版APK更小。但是怎么不安装,而且在安装的时候还是用原项目包名的名字,而不是新的重复修改名呢?

请帮忙。

【问题讨论】:

Android App Not Install. An existing package by the same name with a conflicting signature is already installed 的可能重复项 您是否更新了清单中的软件包名称? 谢谢。你准确地解决了这个问题。我将清单包更改为新的包名称,并通过 eclipse 使用设备对其进行了测试,它可以工作。不敢相信我错过了(我在 标签中更改了清单中的所有包名称,但忘记了主要的。)非常感谢。让我免于头疼。如果你把你指出的作为答案,我会把它作为答案。 在manifest中更改了包名后,通过eclipse在设备上运行成功后,我尝试导出到apke并直接在设备上重新安装。这次它不起作用,并说未安装应用程序。此外,在设备中安装时显示的名称仍然是旧的包名称。 我还忘记了什么? 【参考方案1】:

您必须从设备中删除该应用并重新运行。

【讨论】:

【参考方案2】:

您似乎正试图在同一设备上安装具有不同签名的重复应用。您要么需要使应用程序“不同”,即更改包名称(在 Eclipse 中,在 Android Tools/Rename Application Package 下);或者您需要找到之前用于签署应用程序的相同密钥 - 这很可能是调试密钥,而且现在很可能已过期。

如果您更改包名称,新版本的应用将无法访问旧版本应用的数据。如果您找到旧密钥并且它已过期,您可能可以通过在 PC 和设备上设置日期来诱使 Android 接受它。

【讨论】:

【参考方案3】:

您只需要在命令 shell 中的命令下方运行 确保在系统 PATH 中设置了 adb 路径

adb uninstall your_package_name
adb install path_to_apk

【讨论】:

以上是关于APK 未安装在设备上的主要内容,如果未能解决你的问题,请参考以下文章

在没有开发服务器的设备上构建和安装未签名的 apk?

模拟器或物理设备上的“未安装应用程序”android? [复制]

“未安装应用程序”,试图安装签名apk

我的 apk 没有安装在某些手机上,而安装在其他手机上

Ionic App 未安装在 android 设备中

Android Unsigned App 无法安装在设备上