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 未安装在设备上的主要内容,如果未能解决你的问题,请参考以下文章