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

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

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

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


当前回答

我也遇到过这个问题。 请尝试这个解决方案。确保您的项目的包名称不同于您的移动电话中已经安装的以前的项目。我觉得他们的名字有冲突。它在我身上起作用。

其他回答

我遇到了类似的问题,这是因为我试图在使用相同apk的先前版本的手机上安装apk,而两个apk没有使用相同的证书进行签名。我的意思是,当我使用相同的证书时,我能够覆盖以前的安装,但当我在不同版本之间更改证书时,安装就不可能了。您是否使用相同的证书?

对于那些使用Android Studio 3的人。

Suryanarayana Reddy的答案是正确的,尽管它没有说明解决问题的步骤,因此。

在你的AndroidManifest.xml的应用标签下添加testOnly="false"和android:debuggable="true",就像这样:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:testOnly="false"
    android:debuggable="true"
    >

然后在AndroidStudio的菜单栏Build > Build APK(s)

我也有同样的问题。我不知道即使是测试,应用程序也必须签名。

自签名后,它安装好了。

有时是因为你的手机没有足够的空间。如果是这样,请尝试清理内存,为新安装创造空间。

在我的情况下,我删除无用的权限是不需要的

我只需要一个许可

<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" />