gpt4 book ai didi

Android 替换应用安装失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:56 27 4
gpt4 key购买 nike

我的应用程序实现了自动升级功能,因为该应用程序不会发布到市场。apk 文件托管在网络服务器上。我已经实现了以下链接的一部分

Use AsyncTask and show the download progress in a dialog

现在,当我运行该应用程序时,会发生以下情况。

  1. 如果有新版本可用,应用程序会提示用户是否要升级。 Upgrade prompt

  2. 如果用户选择是,则应用程序将从服务器下载文件。 Download

  3. 完成后,应用会提示用户是否要更换应用 Replace prompt
  4. 如果用户点击确定,则应用程序开始安装但失败并显示以下屏幕 enter image description here

没有提供日志文件信息来说明为什么会发生这种情况。请有人帮助我了解可能导致此问题的原因。这是生成 fianl 2 屏幕的默认 android 代码,不是我的代码。

在异步任务上运行以下代码后会发生这种情况:

    protected void onPostExecute(String result) {
super.onPostExecute(result);
// dismiss the progress dialog
mProgressDialog.dismiss();
// get the file
String path = getFilesDir().getAbsolutePath()+ File.separator + getString(R.string.apk_file);
File file = new File(path);
// if it exists
if(file.exists()) {
// create and start the intent with the new file
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(intent);
} else {
// display error message
Toast.makeText(context, "File was not downloaded", Toast.LENGTH_LONG).show();
}
}

如果我卸载应用程序并使用浏览器转到文件位置,应用程序会自动下载,然后我可以从下载文件夹成功安装它。

这可能是应用程序在当前运行时尝试安装自身的问题吗?该文件在升级过程中下载到内部存储器而不是 SD 卡位置,因为我不能保证用户设备将有 SD 卡。

最佳答案

  1. 确保新旧 apk 使用相同的 key 签名并具有相同的包名称。否则你会看到同样的错误。

  2. 尝试在 startActivity 之后调用 finish 到您的 Activity (或仅使用 System.exit)。

关于Android 替换应用安装失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087030/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com