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

在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。

因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?

我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。


当前回答

当我将android从2.3.2升级到3.0.1时,我就遇到了这个问题。如果是这种情况,IDE将自动考虑以下几点。

1.你不能通过传统的方法安装android:testOnly="true"的应用程序,例如从android文件管理器或从网站下载

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

如果您运行应用程序时直接将设备连接到系统,apk将安装和运行没有问题。

如果你从构建、放置和调试文件夹中复制这个apk,它将永远不会安装到设备中。

解决方案:Build -> Build APK(s) ->复制APK文件共享到您的团队

这样你的问题就解决了。

其他回答

就我而言,这是因为我使用的是支持库28的alpha版本。看起来谷歌将这些预发布版本标记为testOnly。如果你真的想这样发布(例如,你想像我一样推出一个内部测试),你可以将这一行添加到你的gradle中。属性文件:

android.injected.testOnly=false

检查Android版本。

如果你安装的是非市场应用程序,和不兼容的版本,你会得到这个错误。

应用程序的目标是2.3.4 您的设备是2.2 然后你会得到这个错误。

主要针对老款手机

我只是在试图在我的手机上安装一个运行在4.4.2(又名奇巧)上的apk时遇到了应用程序未安装错误,但我的朋友在他的手机上运行在6+上时没有遇到这个错误。我尝试了其他解决方案,比如删除旧的/调试版本的应用程序(因为apk是一个发布版本),清除调试应用程序的数据,甚至清除我所有的缓存数据。然后,最后我意识到我所要做的就是在构建我的签名apk时选择两个签名版本。

之前我只选择了V2(完整的APK签名),但在选择V1 Jar签名之后,我能够成功地在4.4.2设备上安装我签名的APK。

尝试在AndroidManifest.xml中进行更改:

设置debuggable为true 签署apk

如果您正在使用cordova,请尝试卸载任何以前通过cordova构建的应用程序。 很奇怪,但是这个方法解决了我的问题