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

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

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

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


当前回答

打开AndroidMainfest,然后在应用程序标签中添加verionCode, versionName,并确保debug able等于false:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="...">

<application
    ...
    android:debuggable="false"
    android:versionCode="1"
    android:versionName="1.0"
    tools:ignore="HardcodedDebugMode">
    ...
</application>

然后打开构建。gradle (module:app)确保verionCode, versionName退出和minsdk <=您的移动sdk:

defaultConfig {
    ...
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
   ...
}

查阅资料来源:https://developer.android.com/studio/publish/

https://developer.android.com/studio/publish/preparing &

https://developer.android.com/studio/publish/versioning &

和https://developer.android.com/studio/publish/app-signing

其他回答

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

一个小时过去了。

通过命令行创建keystore文件

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

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

这将crate signed apk,同时apk将被zipaligned。和安装。

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

我有同样类型的错误,这是由我的android manifest XML文件中的这一行引起的。

android:permission="android.permission.INSTALL_LOCATION_PROVIDER"

我去掉了那条线,问题就解决了。希望这能有所帮助

主要针对老款手机

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

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

如果有人遇到此问题,请检查版本号。如果您的构建号小于已安装的应用程序构建号,您的应用程序将无法安装,您将获得“损坏的应用程序或apk文件”。

要修复它,只需增加您的版本号,直到它等于或大于已安装的版本号。