【问题标题】:APK does not install on deviceAPK 未安装在设备上
【发布时间】: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更小。但是怎么不安装,而且在安装的时候还是用原项目包名的名字,而不是新的重复修改名呢?

请帮忙。

【问题讨论】:

  • 您是否更新了清单中的软件包名称?
  • 谢谢。你准确地解决了这个问题。我将清单包更改为新的包名称,并通过 eclipse 使用设备对其进行了测试,它可以工作。不敢相信我错过了(我在 标签中更改了清单中的所有包名称,但忘记了主要的。)非常感谢。让我免于头疼。如果你把你指出的作为答案,我会把它作为答案。
  • 在manifest中更改了包名后,通过eclipse在设备上运行成功后,我尝试导出到apke并直接在设备上重新安装。这次它不起作用,并说未安装应用程序。此外,在设备中安装时显示的名称仍然是旧的包名称。
  • 我还忘记了什么?

标签: android eclipse apk duplication


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      adb uninstall your_package_name
      adb install path_to_apk
      

      【讨论】:

        猜你喜欢
        • 2019-10-21
        • 1970-01-01
        • 2015-07-17
        • 1970-01-01
        • 2018-02-07
        • 2016-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多