无法安装我自己生成的apk

Can not install my own generated apk

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

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

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

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

目标 sdk 是 22,我正在使用最新的系统映像,依此类推 api 级别(我的设备是带有 5.1.1 运行ning 的库存 nexus 6)。我还将我的构建工具从 22.0.1 更新到 23.0.1,并删除了 22 版本。这是原因吗?

我也试过在开发控制台上传apk也没有报错

感谢您的帮助。

编辑:

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

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

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

发生了什么事?

您不能 运行 直接在您的 android 设备上签署 apk。

我想 运行 您的 apk 然后按照以下步骤操作:

1) Go to your device settings

2) In setting you find applications

3) In application checked unknown sources

这将允许您 运行 您签名的 apk,而无需从 Play 商店下载。

或 试试这个 link :

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

adb uninstall your_package_name

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

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

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

我不知道这是怎么发生的,但是你走了,我希望这对你有所帮助。

编辑:

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

我遇到了同样的问题,我用这种方法解决了,对于当前 Updated Android Studio 2.3

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

对我来说,选择签名版v1和v2都解决了问题

我得到了保存错误,以防有人遇到这个问题。对我来说,这是因为我在 phone 上有同一个应用程序的多个项目。您需要从 phone.

中删除该应用程序的旧版本

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

如果在生成签名 apk 之前有两个选项(V1(jar 签名)和 V2(完整 APK 签名))。您现在应该使用 V1 jar 签名,因为没有向后兼容性,所有 android 版本 < 7 的手机都不会接受此签名。将在下一个 N Developer Preview 中添加向后兼容性。 这个developer.android里面也有关于这个link的解释: https://developer.android.com/about/versions/nougat/android-7.0#apk_signature_v2

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

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

目前,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

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