无法安装我自己生成的apk

时间:2015-09-23 10:56:21

标签: android eclipse apk

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

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

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

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

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

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

感谢您的帮助。

编辑:

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

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

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

发生了什么事?

12 个答案:

答案 0 :(得分:65)

对我来说,选择签名版本v1和v2都解决了问题enter image description here

答案 1 :(得分:13)

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

  

adb uninstall your_package_name

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

答案 2 :(得分:9)

我遇到了同样的问题而且我用这种方式解决了它,对于当前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文件。

答案 3 :(得分:8)

我找到了解决方案,但我仍然不知道导致问题的原因。

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

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

编辑:

我和这个家伙有同样的问题。那里接受的答案比我糟糕的文字好得多;)

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

答案 4 :(得分:3)

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

答案 5 :(得分:1)

您无法在Android设备中直接运行已签名的apk。

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

1) Go to your device settings

2) In setting you find applications

3) In application checked unknown sources

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

或 试试这个链接:

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

答案 6 :(得分:1)

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

就我而言,是build.gradle中的proguardFiles路径导致了此问题

答案 10 :(得分:0)

  

要使其正常运行,需要检查的东西很少

  1. 转到设置-> 安全性->启用从未知来源安装。在某些设备中,它带有应用类别,或者更好的在“设置”中搜索

    在某些设备上(Lenovo K8是其中之一),您可能必须专门允许应用安装第三方应用。允许安装 Chrome浏览器,驱动器,文件管理器。您可能需要四处寻找才能找到它。


  1. 启用USB调试。 设置-> 关于手机->点击7次->进入开发者选项->启用 Usb调试

    某些apk文件可能是在调试构建版本So。

  2. 下生成的。

  1. 与其直接从email / drive / WhatsApp中共享的链接中打开它,
    复制粘贴它在浏览器中。
    下载文件
    文件管理器 r中打开它,就可以安装

  1. 如果以上方法均无效 检查是否安装了防病毒/清洁程序,并寻找播放保护

答案 11 :(得分:0)

当前,PlayStore会定期检查应用程序和设备是否存在有害行为。手动安装签名的APK被视为异常行为,因此是preventend。 因此,暂时关闭游戏保护功能,您的安装将非常有魅力!

  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