我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
当前回答
在marsmallallow中,在所有者和客户用户中都有。如果客人安装了相同的应用程序,我们不能在所有者安装相同的应用程序。我修复了这个删除客户应用程序
其他回答
对我来说,原因是我在同一部手机上使用不同的构建变体进行了多个构建:
所发生的事情是,其中一些构建是由我构建的,另一个是由另一个开发人员发给我的。试图安装开发人员,而我有其他构建(由我构建)导致上述错误。
所以修复很简单:删除我手机上的所有构建(不管构建变体)..然后安装我的同事发来的apk ..而且效果很好
我也遇到了同样的问题,即App显示为正在安装,但当点击图标时不会启动。经过一些头部撞击,我发现我已经愚蠢地放置了' android:exported="false" '为我的主启动器活动在AndroidManifest文件....一旦我删除它,应用程序启动正常。
在我的情况下,我删除无用的权限是不需要的
我只需要一个许可
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
并删除不需要的权限,并开始给出此错误
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
在我的例子中,这是因为Android Studio 3.0设置Android:testOnly="true"在apk上,从版本build Variant构建。
https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html
所以运行。/gradlew assemblerrelease来解决我的问题
如果应用程序已经安装到或移动到SD卡上,然后连接了USB线,导致SD卡卸载,也会出现“应用程序未安装”错误。
在这种情况下,关闭USB存储或将应用程序移回内部存储可以解决这个问题。