我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
当前回答
在我把手机从Android Pie升级到Android 10之前,在实体手机上加载调试应用程序进行测试一直很可靠。在那之后,每当我试图侧面加载应用程序时,就会出现“应用程序未安装”错误。
根据我的AndroidManifest.xml中的警告,我从…
<application
android:name=".App"
android:allowBackup="true" ... />
……
<application
android:name=".App"
android:allowBackup="false" ... />
在那之后,我就可以侧面加载我的应用了——只有一次。然后,我又遇到了同样的“应用程序未安装”错误。通过将allowBackup更改为true,它可以再次工作(至少一次)。
从答案的数量和答案的变化可以明显看出,这个问题有很多原因。我把这个分享给大家,希望能帮助到其他人。
其他回答
我通过不首先签名应用程序和不使用Maven来解决这个问题。我将此添加到构建路径中。
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<inherited>true</inherited>
<configuration>
<sign>
<debug>false</debug>
</sign>
</configuration>
</plugin>
之后,我手动签名我的应用程序:jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore /home/myself/.android/release.Keystore myapp-1.0.apk androidreleasekey
最后我发现没有一个应用程序被成功安装,不仅仅是我的。我将SD卡默认的安装应用程序设置为自动。这就解决了问题。
主要针对老款手机
我只是在试图在我的手机上安装一个运行在4.4.2(又名奇巧)上的apk时遇到了应用程序未安装错误,但我的朋友在他的手机上运行在6+上时没有遇到这个错误。我尝试了其他解决方案,比如删除旧的/调试版本的应用程序(因为apk是一个发布版本),清除调试应用程序的数据,甚至清除我所有的缓存数据。然后,最后我意识到我所要做的就是在构建我的签名apk时选择两个签名版本。
之前我只选择了V2(完整的APK签名),但在选择V1 Jar签名之后,我能够成功地在4.4.2设备上安装我签名的APK。
当这个问题发生在我身上时,我通过删除项目文件夹中一些不重要的文件来解决它,比如密钥库。
事后看来,把你游戏的钥匙给别人可能不是什么好事。
我也遇到了同样的问题,即App显示为正在安装,但当点击图标时不会启动。经过一些头部撞击,我发现我已经愚蠢地放置了' android:exported="false" '为我的主启动器活动在AndroidManifest文件....一旦我删除它,应用程序启动正常。