我知道这里有很多关于这个的问题,但我已经尝试了一切(但显然是正确的“事情”!)而且似乎没有任何迹象表明我遇到的问题。
我编写了一个应用程序(为客户),旨在托管在他们自己的服务器上。该应用程序引用了一个包含最新版本代码的简单文本文件,并根据自己的版本对其进行检查。如果它已过期,它会关闭并下载更新。到目前为止,一切都按预期工作。
我用:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(outputFile), "application/vnd.android.package-archive");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
...开始安装新下载的 .apk 文件的代码。这一切都如我所料开始。
我点击“安装”——当系统提示我确认用新的应用程序覆盖当前应用程序时。它启动,然后显示:
App not installed. And existing package by the same name with a conflicting signature is already installed.
现在我知道 Android 不能有多个应用程序共享相同的包名称,这很好,但 LogCat 中什么也没有出现,我只能假设操作系统对我试图“更新”我的应用程序感到恼火,甚至虽然我正在通过所有正确的渠道并使用内置的包管理器为我做这件事!
谁能告诉我操作系统在抱怨什么?我不是试图并排安装两个应用程序,我希望它更新它,它开始这样做,然后变得非常困惑。
是否与我使用相同的密钥库对包进行签名有关?我非常怀疑它,因为我以前使用相同的密钥库来处理游戏等的更新,但我就是不知道它在抱怨什么。
希望那里有人遇到过这个问题并解决了它,并且可以为我指明正确的方向。我对它给我的有限信息有点盲目:(
干杯。