我一直在尝试为Android应用程序实施升级计划,该计划不会在Android市场上发布。在应用程序升级过程中发生Android解析错误
所设计的应用程序的工作流程如下:
- 用户在登录时进行验证,并在主菜单活动启动。
- 一个请求从主菜单活动发送到我的网站 最新版本的代码值(Stor在服务器上的SQL数据库中)。
- 将返回的版本代码值与设备上安装的apk版本代码的值 进行比较。
- 如果返回的版本代码值不同,则位于 服务器上的新apk文件将被下载并安装。
在升级工作流程起作用之前,确保完成以下任务也很重要。
- 的apk文件的新版本必须编译烧焦发布了一个更新的versionCode值
- 存储在网站数据库中的versionCode值的值必须更新
- 新编译的apk文件必须是上传到网络服务器上的正确位置
我已经实现了我的工作流程的前三个阶段,但是当我尝试实现第四部分时,我最终得到了“解析错误:解析该问题包“错误。
下面是有问题的代码:
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);
}
我已经测试过的APK将通过下载直接虽然设备的网络浏览器,并从下载文件夹中安装它的APK安装正确。但是当我尝试从应用程序中安装时,我得到了发布的错误。
“解析错误:有aproblem解析包”
任何帮助,将不胜感激
你将它存储在getFileDir? –
你的意思是储存apk?我已经被迫使用仅作为我不能肯定该用户将获得一个SD卡安装 –
此外,我认为下面的代码行会拉从网站上的文件内部存储器中的应用。 'File file = new File(urlBuilder.toString(),getString(R.string.apk_file));' 其中urlBuilder包含指向apk文件的链接 –