我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
当前回答
我用2个不同的证书为应用程序签名,所以用旧证书删除旧版本,然后重新安装新证书为我解决了这个问题
其他回答
如果应用程序没有安装,删除文件.android_secure/smdl2tmpl。asec从SD卡。
如果文件管理器中“。android_secure”文件夹为空,请将其从PC机上删除。
在我的情况下,我删除无用的权限是不需要的
我只需要一个许可
<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" />
就我而言,这是因为我使用的是支持库28的alpha版本。看起来谷歌将这些预发布版本标记为testOnly。如果你真的想这样发布(例如,你想像我一样推出一个内部测试),你可以将这一行添加到你的gradle中。属性文件:
android.injected.testOnly=false
ARGHHHHH !我试图安装为Unsigned Release APK时,正确的设置是DEBUG SDK。
一个小时过去了。
显然,在安装之前重命名APK也可能导致这种情况。我想通过缩短文件名来减少用户从我们的网站上获取应用的输入量。在那之后,他们无法安装它。
一旦我恢复到创建和签名包时使用的原始文件名,我就能够更新安装的应用程序。