我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
当前回答
在我的例子中,这是因为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来解决我的问题
其他回答
在我的情况下,我删除无用的权限是不需要的
我只需要一个许可
<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" />
我也遇到过这个问题。 请尝试这个解决方案。确保您的项目的包名称不同于您的移动电话中已经安装的以前的项目。我觉得他们的名字有冲突。它在我身上起作用。
在尝试安装应用程序时,打开你的logCat。将其设置为“无过滤器”。搜索“InstallAppProgress”包标识符。如果安装失败,您将看到“安装错误代码”。对我来说是
D/InstallAppProgress: Installation error code: -7
从这里,您可以使用此链接查找有关特定错误代码的信息。
I had a similar situation.I was able to install app in debug mode using USB but not a signed version. I was able to install signed version on other phone, but not on my device. Numerous reasons and solutions did not help me. But one direction I got from a solution "uninstall for all users". What I did is to again install app in debug mode using USB connection, go to app details and "uninstall for all users" from right top 3 dots - to remove debug version. This looks like cleared all kinds of references. I usually do a normal uninstall.
现在我能够在设备上获得签名APK并成功安装。
这个答案只与使用本机库(Android NDK)的应用程序相关。
在我的案例中,问题在于jniLibs中缺少一些用于目标电话CPU架构的本机库。因此,应用程序可以在模拟器上运行,但在真正的手机上,我看到“应用程序未安装”。
我最初只复制了x86架构的编译本机库,所以应用程序可以在模拟器上运行。但是,其他体系结构缺失(x86_64、armeabi_v7a、arm64-v8a)。在添加了缺失的*之后。所以所有架构的文件到jniLibs,“App未安装”错误消失了。