【问题标题】:why won't the new version of my android app apk install over the old version为什么我的 android app apk 的新版本不能安装在旧版本之上
【发布时间】:2011-12-15 23:15:47
【问题描述】:

我成功地制作了一个小型私有 android 应用程序(如果有影响,请使用 appcelerator)并从签名的 apk 文件将其安装在我的设备上。

然后我对我的应用程序进行了一些更改,并使用更新的版本号重新打包它,但使用相同的证书签名,当我遇到问题时。

当我尝试在我的 android 设备上安装它时,正如预期的那样,它警告我“您正在安装的应用程序将替换另一个应用程序”但“所有以前的应用程序数据都将被保存”。我同意更换,安装继续进行,没有出现错误,直到收到并显示“未安装应用程序”,没有任何其他详细信息。

原apk中的版本代码和名称为:

android:versionCode="1" android:versionName="1.0"

在第二个版本中

android:versionCode="2" android:versionName="1.1"

我被这个逼疯了,我错过了什么?

【问题讨论】:

  • 您的应用程序版本是否使用相同的密钥签名?
  • 使用连接到 DDMS 的设备重做所有操作,看看是否可以从 Logcat 获得比“未安装应用程序”更详细的堆栈跟踪。
  • 它们很可能是以某种方式使用不同的密钥进行签名的。在这种情况下,这正是它在大多数设备上的行为。

标签: android android-manifest appcelerator-mobile android-install-apk apk


【解决方案1】:

首先,尝试使用 adb 安装您的应用程序:

adb install -r /path/to/your.apk

如果没有帮助,请尝试:

adb shell pm uninstall -k com.your.package
adb install /path/to/your.apk

这将卸载 apk,同时保留其所有数据。然后再次重新安装它。如果这也没有帮助,adb 至少会为您提供更容易排除故障的错误代码。

【讨论】:

  • 不知道为什么,但通过 adb 安装第一个包再次起到了作用,现在新版本正确安装在原来的顶部
【解决方案2】:

如果密钥签名不同,那么您可能会遇到这个问题

【讨论】:

    【解决方案3】:

    虽然 OP 已经提到他们将 android:versionCode 设置为高于以前的版本,因此这个答案不能解决他们的具体问题,但我发现在我的情况下,答案是将 android:versionCode 提高到更高比安装的版本。找到这个问题后才想通/

    【讨论】:

      【解决方案4】:

      您假设使用与发布 apk 相同的密钥签名来检查您的逻辑

      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=your_package_name &hl=en"))); 
      

      它将在 Play 商店中显示更新按钮。

      【讨论】:

        【解决方案5】:

        有时旧的构建文件会被重用。您可以保存以下脚本:

        (1) 将以下脚本添加到您的 package.json:

        {
            ...
            "scripts": {
                ...
                "android-install": "npm run android-clean && npm run android-bundle && npm run android-assemble-release && npm run android-uninstall-release && npm run android-adb-install"
            }
        } 
        

        (2) 每次您想安装到您的 Android 设备时,只需运行:

        npm run android-install
        

        如果您没有连接 Android 设备,上述脚本将失败。如果您想简单地组装一个版本而不将应用程序安装到设备上,只需删除最后两个命令 (&& npm run android-uninstall-release && npm run android-adb-install)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-15
          • 2015-12-07
          • 1970-01-01
          • 1970-01-01
          • 2021-09-29
          相关资源
          最近更新 更多