我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
我有一个程序在Android模拟器工作。我不时地创建一个签名的。apk,并将其导出到我的HTC Desire进行测试。一切都很好。
在我最新导出的。apk上,当我试图安装。apk时,我得到错误消息“应用程序未安装”。它在模拟器上运行良好。
因为我主要是在模拟器上测试,只是时不时地导出到真正的手机上,我不确定这是什么时候发生的。什么可能的原因,它不安装在物理手机,但运行良好的模拟器?
我已经尝试重新启动电话并删除现有的。apk,并不能解决这个问题。
当前回答
我用2个不同的证书为应用程序签名,所以用旧证书删除旧版本,然后重新安装新证书为我解决了这个问题
其他回答
如果你尝试了上面所有的答案,没有一个有效,你可能想试试这个:
如果你的构建变量是“调试”,那么你应该在应用程序构建gradle的buildTypes下添加这个,以便应用程序安装到你的设备上:
debug {
minifyEnabled false
}
在我的情况下,我删除无用的权限是不需要的
我只需要一个许可
<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" />
对于那些使用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)
我的问题是,我在设备上有多个用户帐户。我删除了其中一个帐户的应用程序,但它仍然安装在另一个帐户。因此,名称空间发生碰撞,无法安装。卸载应用程序从所有用户固定它为我。
我曾以各种形式遇到过这个问题,但这一次是一个新的问题:
在这种情况下,我有提供商名称冲突-相同的提供商名称存在于我的应用程序和我的另一个应用程序。