【问题标题】:Can not install my own generated apk无法安装我自己生成的 apk
【发布时间】:2015-12-20 15:52:29
【问题描述】:

我更新了我的应用并在我的设备上对其进行了测试。如果我通过 eclipse 中的运行按钮测试应用程序,一切正常,但如果我将其导出到 apk 并尝试安装 apk,它会失败。

没有错误代码或其他任何内容,它只是表示该应用尚未安装。

知道为什么会这样吗?我只在我的应用程序中更改了一些东西:我从我的应用程序中删除了 basegameutils 库并迁移到没有 basegameutils 的新 api。就是这样(除了一些错误修正,但这不是原因)。

我确实已经重新启动了 eclipse 并多次清理了所有项目。

目标 sdk 是 22,我正在使用最新的系统映像等用于该 api 级别(我的 divce 是运行 5.1.1 的股票 nexus 6)。我还将构建工具从 22.0.1 更新到 23.0.1 并删除了 22 版本。是这个原因吗?

我也尝试在开发控制台上传apk,没有错误。

感谢您的帮助。

编辑:

logcat 输出显示签名与之前安装的版本不匹配。

如果我尝试通过 Play 商店安装当前的实时版本,还会出现一条错误消息,指出我无法安装此应用程序,因为另一个用户已在此设备上安装了不兼容的版本(但我没有安装它,我也没有设备上有多个用户)。

如果我进入设置中的应用程序菜单,我的应用程序会显示在列表底部,但有一条说明没有为用户安装该应用程序。如果我点击它,所有按钮都无法点击(所以我无法卸载它)。

发生了什么?

【问题讨论】:

  • 还有 logcat 输出
  • @ IntelliJ Amiya :“我通过 Eclipse 中的运行按钮测试应用程序”我认为他正在使用 Eclipse..!!
  • 你是如何生成apk的?
  • 我更新了我的帖子。我希望这有帮助。我通过eclipse中的导出功能生成我的apk。
  • 您的问题似乎与此有关:stackoverflow.com/questions/32718044/…

标签: android eclipse apk


【解决方案1】:

对我来说,选择 Signature Version v1 和 v2 都解决了问题

【讨论】:

  • 为我工作 +1
  • 我也是+1。谢谢
  • 为我工作 +1
  • 也为我工作,谢谢
  • 为我工作 +1
【解决方案2】:

您的签名已更改,因此如您所述,您必须卸载以前的版本。您尝试从设备 UI 卸载,但失败 - 请从命令行尝试:

adb 卸载 your_package_name

在 Nexus 设备上看到,偶尔只有命令行卸载工作。

【讨论】:

  • 我找到了一个解决方案,但您的解决方案可能也会起作用(不过我不知道)。谢谢!
  • +2 TanX 很多,节省我的一天 :)
【解决方案3】:

我找到了解决方案,但我仍然不知道是什么导致了问题。

我的应用程序仍然安装在我设备上的某个地方,即使它没有出现在应用程序抽屉中,并且 Play 商店告诉我同样的情况。在设置/应用程序菜单中,我的应用程序仍然存在(正如我在原始帖子的编辑中提到的),所以我点击了它。如果您单击菜单按钮,您可以为所有成功的用户选择 unisntall。现在我可以再次安装我的 apk。

我不知道这是怎么发生的,但是你去吧,我希望这会有所帮助。

编辑:

我和这个人有同样的问题。那里接受的答案比我格式不佳的文本要好得多;)

"You cannot install this app because another user has already installed an incompatible version on this device"

【讨论】:

  • 如果您在单个设备上拥有多个帐户,则可能会出现这种情况。如果您卸载应用程序,则它不适用于一个(或每个)帐户,但仍存储在内存中。如果您尝试安装使用不同密钥签名的应用程序,则会引发错误。
  • Android Studio 在调试时会为所有用户安装应用。当安装失败时,我会期待更好的错误消息。
【解决方案4】:

我遇到了同样的问题,我通过这种方式解决了,For Current Updated Android Studio 2.3

  1. Build > 生成Signed apk
  2. 创建Keystore path
  3. 输入Password, alias, key password
  4. Build type 相应地选择(例如,在 Playstore 中发布使用 release)。
  5. Signature Version 同时选中 V1V2 复选框。
  6. Finsih
  7. explorer 转到 apk 并将其用于您的 playstore 或在设备中作为签名和认证的 apk 文件。

【讨论】:

  • 这是 APK 未签名的情况,因此具有固有功能的设备会拒绝此类 APK。但这里的问题是关于已签名但仍然无法安装的 APK,只是因为人们之前曾尝试安装它,但由于卸载不完整而留下了残留物。
【解决方案5】:

对我来说,解决方案是在设备上禁用 Play Protect。

【讨论】:

  • 对我来说,Android 8.0 (Oreo) 有这个问题。
【解决方案6】:

你不能直接在你的安卓设备上运行签名的apk。

如果您想运行您的 apk,请按照以下步骤操作:

1) Go to your device settings

2) In setting you find applications

3) In application checked unknown sources

这将使您无需从 Play 商店下载即可运行已签名的 apk。

或 试试这个链接:

"You cannot install this app because another user has already installed an incompatible version on this device"

【讨论】:

  • 我已经这样做了。我能够运行我的 apk 多年,今天它刚刚停止工作。
  • 好吧,你改变了你的密钥库吗?
  • 不,我没有。正如我所说,我可以毫无错误地将 apk 上传到开发控制台。不过我找到了解决方案。
【解决方案7】:

问题是因为您有一个测试应用版本。因此,您并没有真正升级应用程序!这是两个不同的应用程序。您必须先卸载以前的版本(测试),才能安装应用的发布(签名)版本。

【讨论】:

    【解决方案8】:

    我今天遇到了这个问题,在这里尝试了一些建议,这就是我解决问题的方法:我清除了手机的缓存/垃圾文件,还卸载了应用程序的测试版本及其 APK,然后重新安装了新的APK。在担心之前先试试这个。 ?

    【讨论】:

      【解决方案9】:

      我得到了保存错误,以防有人面临这个问题。对我来说,这是因为我在手机上为同一个应用程序有多个项目。您需要从手机中删除旧版本的应用。

      【讨论】:

        【解决方案10】:

        如果您在生成签名 apk 之前有两个选项(V1(jar 签名)和 V2(完整 APK 签名))。您现在应该使用 V1 jar 签名,因为没有向后兼容性,并且所有版本 https://developer.android.com/about/versions/nougat/android-7.0#apk_signature_v2

        【讨论】:

          【解决方案11】:

          在我的例子中,是 build.gradle 中的 proguardFiles 路径导致了这个问题

          【讨论】:

            【解决方案12】:

            目前 PlayStore 会定期检查应用和设备是否存在有害行为。手动安装签名的 APK 被视为异常行为,因此是预防。 所以关闭临时播放保护功能,您的安装将发挥魅力!

            1. step one - open play store and select play protect
            2. step two - click play protection setting button
            3. step three - disable
            4. step four - close and install your APK manually

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-08-10
              • 1970-01-01
              • 2013-12-24
              相关资源
              最近更新 更多