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

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

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

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


当前回答

我在向playstore发布最新应用时就遇到了这个问题。问题是MainLauncher和应用快捷方式的结合变化。

我们添加了一个启动画面,我们的入口点是SplashActivity而不是MainActivity。所以,那些有以前版本的人,在他们的主屏幕上有应用程序快捷方式,无法打开应用程序。它总是说类似于应用程序未安装吐司。这并不是发生在每个发射器上(对我们来说,这在三星更常见)。

在幕后,App快捷方式应该无缝更新入口点从MainActivity到SplashActivity。但是,由于某种原因,许多第三方发射器不遵守该规定。修复方法是清除快捷方式并再次添加它。

如果你还没有在playstore中更新你的应用,请阅读这篇文章。

更新启动器活动时要小心。

其他回答

这也可能发生在制作主屏幕小部件时,并且您的小部件XML文件在其android:configure属性中指定了错误的Activity。

当这个问题发生在我身上时,我通过删除项目文件夹中一些不重要的文件来解决它,比如密钥库。

事后看来,把你游戏的钥匙给别人可能不是什么好事。

打开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

使用Android Studio,我之前安装了APK的未签名调试版本(Build > Build APK),在安装有签名的发布版本之前必须卸载它(Build Variant > Build Variant: release, Build > Generate signed APK)。

我尝试了所有发布的方法, 都要放弃了 签名这件事解决了这个问题。

找到了一些写着“apk签名者”的应用程序,它做到了。