Android上的"App not Installed"错误

Ent*_*024 388 android android-emulator

我有一个在Android模拟器中工作的程序.我一次又一次地创建一个签名的.apk并将其导出到我的HTC Desire进行测试.一切都很好.

在我最新导出的.apk上,当我尝试安装.apk时,收到错误消息"App not installed".它在模拟器上运行良好.

由于我主要是在模拟器上进行测试,并且只是每次都出口到真正的手机,我不确定这是什么时候发生的.它不是在物理手机上安装而是在模拟器中运行良好的可能原因是什么?

我尝试重新启动手机并删除现有的.apk,但没有解决问题.

Chr*_*ong 249

主要用于较旧的手机

App not installed尝试在我的手机上安装apk时遇到错误,该手机运行在4.4.2 aka KitKat上,但是我的朋友在他的6+以上的手机上没有遇到这个错误.我尝试了其他解决方案,例如删除应用程序的旧/调试版本,因为apk是发布版本,清除调试应用程序的数据,甚至清除所有缓存数据.然后,最后我意识到我所要做的就是在构建我签名的apk时选择两个签名版本.

在此输入图像描述

在我V2 (Full APK Signature)选择之前,但在选择之后V1 Jar Signature,我能够在我的4.4.2设备上成功安装我签名的APK.希望这有助于他人!

  • 当你有一部旧手机时,请考虑这个解决方案!我有一个安装了Android 4.4.2的Galaxy S4 mini,我忘了检查"V1签名",因此无法安装在设备中.检查后,apk就像魅力一样安装. (5认同)

Qas*_*sim 200

对我来说,在Android 9(API 28)上,从Play商店应用程序禁用Google Play Protect可以解决这个问题,而且我能够摆脱App not Installed错误.

要停用Google Play Protect.打开"Play商店"应用程序=>点击菜单按钮=>选择"播放保护"选项=>禁用选项"扫描设备的安全威胁".

  • 也在Android 7上发生。这解决了 (5认同)
  • 即使当我第一次尝试安装我的应用程序时,游戏保护提示我说它无法验证该应用程序是否安全,并且我确实按了“无论如何都安装”,该应用程序仍然无法安装。此替代有效 (4认同)
  • 在Android 8上也是如此(只是为了完成报告的7和9之间的差距)。 (3认同)
  • 绝对荒谬,但它确实有效。今天早上我已经安装了我的 APK 6 次,每次它都会提示我是否真的要安装,尽管它没有被 Play 商店或其他什么地方识别。然后突然它不再提示我,而是决定失败并显示一条无用的消息。这让我绕过了它。 (3认同)
  • 这加上删除现有的应用程序,解决了我的问题。 (3认同)
  • 这很好。安装APK后,请不要忘记还原设置。 (2认同)
  • 没有为我工作。甚至在Android 6上也会发生。 (2认同)

Jav*_*avi 139

我有一个类似的问题,这是因为我试图在手机上安装apk与相同apk的先前版本,并且两个apks没有使用相同的证书签名.我的意思是当我使用相同的证书时,我能够覆盖以前的安装,但是当我在版本之间更改证书时,安装是不可能的.你使用相同的证书吗?

  • 是的,它是相同的证书.我想我曾经有过这个.我尝试删除手机上的现有应用程序,并尝试安装未签名的版本.仍然得到相同的错误消息. (9认同)
  • 这篇文章有30多个答案.我建议的是,每当您遇到此问题时,请在安装应用程序时观察设备日志.使用adb logcat.您将了解安装失败的确切原因.我的问题的日志是"包com.companyname.appname签名与以前安装的版本不匹配;忽略!" (6认同)
  • 我也有同样的问题(以前版本与其他证书) - 具体来说,我已经隐式安装它使用调试器.Revmoving解决了它(不是你的情况,如下所示,但值得在这里注册) (2认同)

Ast*_*ear 115

显然,这个问题有很多原因.对我来说情况是这样的:我已经从Android Studio(v1.3.2)中部署到我的nexus 7(实际设备).一切正常.然后我创建了一个签名的apk并上传到我的Google云端硬盘.断开我与nebus之间的关系后,我转到设置/应用程序并卸载了我的应用程序(App1).然后我打开谷歌驱动器并单击我的App1.apk并选择安装它(需要确保您已允许在设置中安装apks).然后我收到了可怕的消息"App not Installed"

解决方案对我来说:回到设置/应用程序并滚动所有应用程序,在底部是我的App1 的苍白版本(请注意原始App1按字母顺序排在顶部,如上所述删除).当点击苍白版本时,它说"没有为这个用户安装".(我已经建立了我的联系以拥有多个用户).但是在右上角有一个三点式按钮.我按了这个,它说"为所有用户卸载".我做了什么,它解决了这个问题.我现在能够点击App1.apk并且安装正常而没有错误.

  • 如果只有StackOverflow让我们不止一次upvote.这个解决方案在一年前帮助了我.我投了赞成票并立刻忘记了.今天有同样的问题,它再次帮助了我.尝试upvote和StackOverflow说我已经有了.那好吧. (3认同)
  • 这真的很有帮助,我在安装之前已经安装了20次卸载我的应用程序.非常感谢!:-) (2认同)
  • 谢谢.我也遇到过这个问题.第一次卸载应用程序仅对当前活动用户执行此操作绝对不是显而易见的.为了避免每次进入设置,我使用命令`adb uninstall your.package.name`为所有用户卸载. (2认同)

Sur*_*ddy 42

当我将我的android从2.3.2更新到3.0.1时,我遇到了这个问题.如果是这种情况,IDE将自动考虑以下几点.

1.您无法通过常规方式安装带有android:testOnly ="true"的应用程序,例如来自Android文件管理器或从网站下载

2.Android Studio在运行的APK上设置android:testOnly ="true"

如果你运行你的应用程序直接将设备连接到你的系统,apk将安装并运行没有问题.

如果你通过copy从build out put和debug文件夹发送这个apk,它将永远不会安装在设备中.

解决方案:去构建--->构建APK(s) --->将apk文件共享复制到您的团队

那你的问题就解决了.

  • 这这这这就是我的答案。令人烦恼的是,这个简单的事情并没有在程序中或通过设备上的任何错误消息明显地被意识到。谢啦! (5认同)

chr*_*phe 29

我遇到了同样的问题.问题是我的AndroidManifest.xml文件中的主要活动被写了两次.我删除了副本.

  • 谢谢你的提示!在我的情况下,`android:exported` 被设置为 false 以用于启动器活动 (10认同)

Ser*_*tov 21

如果您在AndroidManifest.xml中声明了两次MainActivity,则会发生这种情况.

另一个可能的原因:您更改了启动活动.提示:永远不要使用已发布的应用程序!Android开发者博客中讨论的原因.

  • 任何"Activity","Service","BroadcastReceiver"等的+1`android:name`属性都不能在清单文件中更改.虽然它似乎是您应用中的私有标识符,但它是一个公共API. (4认同)
  • 您可以使用<activity-alias>标记来处理它! (2认同)

cod*_*441 18

我有同样的问题.我没有意识到即使是测试也必须签署应用程序.

自我签名后,安装得很好.


Thi*_*ete 13

我有同样的问题,这里是如何解决它:转到清单文件,并确保您将"Debuggable"和"仅测试"属性设置为false.它对我有用:)

  • 不确定你的'Test Only'是什么意思,但将debuggable设置为true并签署apk对我有用! (2认同)

Aks*_*ore 12

适用于使用Android Studio 3的用户.

Suryanarayana Reddy的答案是正确的,因为它没有说明解决它的步骤,因此.

在您的AndroidManifest.xml下的应用程序标签添加testOnly="false"android:debuggable="true"如下所示:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:testOnly="false"
    android:debuggable="true"
    >
Run Code Online (Sandbox Code Playgroud)


然后在AndroidStudio的菜单栏中编辑 Build> Build APK(s)

  • 最近遇到这个问题。只需添加 android:testOnly="false" 和 Build -&gt; Build Apks 即可完成。都排序了。谢谢!无需添加任何其他 android 属性,例如 android:debuggable="true"。 (2认同)

Jou*_*los 11

我知道这是一个旧帖子,但对于新用户可能会有用.我有同样的问题:我的应用程序在debbuging工作正常.当我签署APK时,我收到了相同的消息:"应用程序未安装".

我修复了卸载我的JDK(我使用的是jdk-6u14-windows-x64)并安装了一个新的(jdk-6u29-windows-x64).导出后再次签署APK,一切都还可以!

恢复,我的问题是在JAVA版本.谢谢甲骨文!!

  • 真是奇怪。这是用于仿真器还是设备? (2认同)

Rul*_*ule 10

我的问题是我在设备上有多个用户帐户.我在1个帐户上删除了该应用,但它仍然安装在其他帐户中.因此命名空间冲突并且没有安装.从所有用户卸载应用程序为我修复它.

  • 从"应用程序管理器"中,选择应用程序(将显示但已列为已卸载),选择"更多",将显示"为所有用户卸载"选项. (2认同)

Nel*_*ale 10

我今天遇到了类似的问题,起初我以为是我的 SD 卡损坏了它。我在许多运行 android 4.4 及更高版本的设备上尝试过,但它一直带来同样的问题。经过一些谷歌搜索和研究后,我意识到我没有选择适用于android 7.0 nougat之前的设备的v1 jar 签名,所以我同时应用了这两个通过选中两个复选框来生成这些签名并生成一个签名的 apk 并且它起作用了。

在此处输入图片说明

链接到解决方案Android – 安装已签名的 APK 时未安装应用程序错误 – 如何修复


mas*_*ani 9

我有同样的问题,即应用程序显示为已安装,但在点击图标时无法启动。经过一番折腾,我发现我在 AndroidManifest 文件中为我的主要启动器活动愚蠢地放置了 'android:exported="false" ......一旦我删除它,应用程序就可以正常启动了..


Ada*_*Kis 8

我的问题是:我使用了Debug Apk,它是我在 Android Studio中执行Run命令时生成的

解决方案是:清除项目,而不是使用此文件,然后单击“构建”>“从Android Studio中构建APK”。然后,您可以使用通常文件夹(app / build / outputs / apk / debug /)中生成的APK

像这样生成的文件安装没有问题。


小智 7

如果应用程序未安装,请.android_secure/smdl2tmpl.asec从SD卡中删除该文件.

如果.android_secure文件管理器中的文件夹为空,请将其从PC中删除.


Mik*_*e F 7

在我将手机从 Android Pie 升级到 Android 10 之前,用于在物理手机上进行测试的旁加载调试应用程序运行可靠。此后,每次尝试旁加载应用程序时都会出现“未安装应用程序”错误。

根据我的 AndroidManifest.xml 中的警告,我从...

<application
    android:name=".App"
    android:allowBackup="true" ... />
Run Code Online (Sandbox Code Playgroud)

到...

<application
    android:name=".App"
    android:allowBackup="false" ... />
Run Code Online (Sandbox Code Playgroud)

在那之后,我能够侧载我的应用程序 - 一次。然后,我再次遇到相同的“未安装应用程序”错误。通过改allowBackuptrue,它再次工作(至少一次)。

从答案的数量和答案的变化可以明显看出,造成这个问题的原因有很多。我正在分享这个以防对其他人有帮助。


And*_*ndy 6

啊啊啊啊!当正确的设置是 DEBUG SDK 时,我试图安装为 Unsigned Release APK

有一个小时。


Sim*_*rma 6

在我的情况下,我将我的启动器活动声明为 android:exported="false"

<activity android:name=".MainActivity"
            android:exported="false">
Run Code Online (Sandbox Code Playgroud)

我最近针对 android 12 并且不得不android:exported在我的清单组件中放置属性,但不知道将什么作为值放置。将值更改为android:exported="true"有效。


Ent*_*024 5

最后我发现没有成功安装任何应用程序,而不仅仅是我的。我将 SD 卡中的安装应用默认设置为自动。那修复了它。


小智 5

如果您有该应用程序的先前版本,请尝试先删除它,现在我的问题已通过该方法解决。


小智 5

我也解决了这个问题,

问题是我宣布我的主要活动两次,On作为第一个加载的活动,我也为它指定了一个intent-filter又一次在它下面再次声明它.

请确保您没有两次宣布您的活动.


Chi*_*aka 5

通过命令行创建密钥库文件

keytool -genkey -alias key_file_name.keystore -keyalg RSA -validity 1000000000000000 -keystore key_file_name.keystore

通过Eclipse导出apk,右键单击Android项目Android工具>导出签名的应用程序包,然后提供密钥库位置和密码。

这将创建带签名的apk,同时将apk对齐。并可以安装。

如果您全部通过命令行,有时您可能会遇到“未安装应用程序”错误。(应用程序未安装错误不仅会在使用命令行时发生。也可能是其他一些原因)


mrt*_*rts 5

使用 Android Studio,我之前安装了 APK 的未签名调试版本(“构建”>“构建 APK”),并且必须在安装签名的发布版本(“构建变体”>“构建变体:发布”“构建”>“生成签名 APK ”)之前将其卸载。

  • 我刚刚在同一个问题上浪费了两个小时。我的应用程序显示版本,例如。“3.5.6”,但不显示它是调试版本还是发布版本。我一直在摆弄许多不同的文件,但不知道自己在哪里,并尝试用发布 apk 更新调试 apk。我认为 Android 过去会显示“文件签名冲突”之类的消息,但现在(Pie,9.0)您只会得到“应用程序未安装”,而无法找到原因。惨痛的教训! (2认同)