【问题标题】:Installing an Android update - "Application Not Installed" error安装 Android 更新 - “未安装应用程序”错误
【发布时间】:2011-12-01 19:53:22
【问题描述】:

我最近对现有应用进行了更改,我们希望将更改作为可下载的更新推送给我们的用户。

应用程序识别出有更新,并下载文件。下载后,我们可以点击apk文件,它说它将替换现有的应用程序。我们点击 OK,然后点击 Install 并收到一条消息,简单地说“应用程序未安装”。

我们希望这是对新更新的无缝过渡,因为我们有大约 1000 名用户需要此更新才能让我们的公司顺利运行。

两个应用程序(旧版本和新版本)都是使用相同证书签名的 APK。让每个用户手动卸载然后安装新版本不是一种选择,因为我们限制了他们对手机功能的访问权限。

【问题讨论】:

  • 您是否尝试过刷新安装最新的构建 apk,它安装正确吗?
  • 是的。我能够单独安装版本 42 和 43,而不会出现任何错误。但是安装 42,然后尝试将其“升级”到 43 是我遇到问题的地方。
  • 我可以安装 42,卸载,然后安装 43。但这不是我们想要的方式
  • 根据您的描述,您的应用自行检测到可用升级,下载升级,提示用户点击下载的apk文件升级/替换现有应用,更清楚一点,您不是在使用Android市场管理应用程序发布/升级,rignt?
  • 这基本上是正确的。它将提示他们下载 APK 文件。然后他们必须去下载并选择打开和安装文件。我们不是通过市场来做这件事的,而是通过我们的服务器来做的。

标签: android installation automated-deploy


【解决方案1】:

如果不查看日志和/或清单文件,很难确定,但需要快速查找一些内容:

在 AndroidManifest.xml 文件中,检查以确保:

  1. 每个版本的包名完全相同
  2. versionCode 是一个大于之前版本的整数
  3. 每个版本的versionName都不一样

【讨论】:

  • 我们在 versionCode = "3.0" (对于两个版本)和 versionName = "42" 和 "43" 分别为旧版本和新版本。所以你是说我们需要将 versionCode 更改为 3.1 或 4.0 之类的 versionName 43?
  • VersionCode 实际上应该是一个整数(即4),因为这是系统用来确定每个版本的继承的。 VersionName 通常是一个十进制数字,更类似于内部版本号。
  • 做到了!我们的服务器分发它的方式遇到了一些问题。有一个旧版本的 3.0,它仍在寻找。
  • 很高兴听到这个消息;否则我会被难住的。谢谢!
  • @VeryVito 如果我在 mainactivity 之前添加了一个要打开的启动活动,它是否会出现同样的错误??或者如果我添加到主要活动“android:theme="@android:style/Theme.NoTitleBar.Fullscreen"”?因为我的包名一模一样,版本号比上一个大一个整数,versionName不一样..谢谢你的帮助
猜你喜欢
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
相关资源
最近更新 更多