我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
我有一个程序在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
其他回答
我发现,如果我用compileSdkVersion构建我的应用程序,buildToolsVersion和targetSdkVersion都设置为默认值30在我的构建。Gradle文件,那么应用程序将无法安装在我的手机上。但是,如果我把它们改回版本29,它就可以工作了。问题是,从SDK 30开始,你需要选择V2 jar签名。有关更多信息,请参阅为什么Android SDK 30生成无效的APK文件?
对我来说,原因是我在同一部手机上使用不同的构建变体进行了多个构建:
所发生的事情是,其中一些构建是由我构建的,另一个是由另一个开发人员发给我的。试图安装开发人员,而我有其他构建(由我构建)导致上述错误。
所以修复很简单:删除我手机上的所有构建(不管构建变体)..然后安装我的同事发来的apk ..而且效果很好
我也面临着同样的问题。问题是我的AndroidManifest.xml文件中的主要活动写了两次。我删除了副本。
当我将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文件共享到您的团队
这样你的问题就解决了。
对我来说,在Android 9 (API 28)上,从播放商店应用程序中禁用谷歌播放保护起作用了,我能够摆脱应用程序未安装的错误。
禁用谷歌播放保护功能。打开“Play Store”应用=>点击 on菜单按钮=> select "Play Protect"选项=>禁用选项 “扫描设备安全威胁”。