我一直在尝试为我的 Android 应用程序实施升级计划,该计划不会在 Android 市场上发布。
设计的应用程序工作流程如下:
- 登录时验证用户并启动主菜单活动。
- 从主菜单活动向我的网站发送一个请求以获取最新版本代码值(存储在服务器上的 SQL 数据库中)。
- 返回的版本代码值将与设备上安装的 apk 的版本代码值进行比较。
- 如果返回的版本代码值不同,则下载并安装位于服务器上的新 apk 文件。
确保在升级工作流程生效之前已完成以下任务也很重要。
- 必须编译新版本的 apk 以使用更新的 versionCode 值发布
- 必须更新存储在网站数据库中的 versionCode 值
- 新编译的apk文件必须上传到web服务器的正确位置
我已经实现了工作流程的前 3 个阶段,但是当我尝试实现第 4 部分时,我最终得到了“解析错误:解析包时出现问题”错误。
下面是有问题的代码:
protected void upgradeApplication() {
StringBuilder urlBuilder = new StringBuilder(getString(R.string.website_ip) + "/" + getString(R.string.application_middleware) + "/" + getString(R.string.apk_folder) + "/");
File file = new File(urlBuilder.toString(), getString(R.string.apk_file));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(intent);
}
我已经通过设备 Web 浏览器直接下载 apk 并从下载文件夹安装它来测试 apk 是否可以正确安装。但是当我尝试从应用程序中安装时,我得到了发布的错误。
“解析错误:解析包有问题”
任何帮助,将不胜感激