3

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

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

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

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

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

在第二个版本中

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

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

4

5 回答 5

6

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

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

如果这没有帮助,请尝试:

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

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

于 2011-12-15T23:20:10.890 回答
2

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

于 2011-12-15T23:48:37.197 回答
2

虽然 OP 已经提到它们的设置android:versionCode高于以前的版本,所以这个答案不会解决他们的具体问题,但我发现在我的情况下,答案是增加到android:versionCode高于安装的版本。找到这个问题后才知道这一点/

于 2015-11-03T17:17:44.923 回答
0

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

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

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

于 2016-10-25T11:56:37.023 回答
0

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

(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)

于 2019-07-25T01:40:52.163 回答