无法安装我自己生成的 apk

Posted

技术标签:

【中文标题】无法安装我自己生成的 apk【英文标题】:Can not install my own generated 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。 您的问题似乎与此有关:***.com/questions/32718044/… 【参考方案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

    Build > 生成Signed apk。 创建Keystore path。 输入Password, alias, key passwordBuild type 相应地选择(例如,在 Playstore 中发布使用 release)。 Signature Version 同时选中 V1V2 复选框。 Finsih。 从 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 上传到开发控制台。不过我找到了解决方案。 试试这个链接:***.com/questions/28853250/…【参考方案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 被视为异常行为,因此是预防。 所以关闭临时播放保护功能,您的安装将发挥魅力!

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

【讨论】:

以上是关于无法安装我自己生成的 apk的主要内容,如果未能解决你的问题,请参考以下文章

我无法通过 buildozer 生成 APK

Android Studio无法生成APK

无法获得离子来构建android apk

无法使用 sencha cmd 3.1.2.342 从 Sencha touch 项目生成 android apk

安装apk Q-municate时出错

从下载的apk安装