解析错误:解析软件包时出现问题

今天在做自动检测软件更新的时候,将服务器上apk下载下来后,调用Android安装代码进行安装,报了如下错误:

解析错误:解析软件包时出现问题





检查了一下代码,发现出现这个问题的原因是没有关闭输入输出流和关闭网络连接,在下载完后需要依次将这些打开的流关闭,就能解决问题了

 bis.close();
 bos.close();
 connection.disconnect();


/**
 * 下载apk
 */
public void downLoadApk() {
    try {
        URL url = new URL("http://hxyiyo.com/ydjx_tV1.0.apk");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        BufferedInputStream bis = new BufferedInputStream(connection.getInputStream());

        File file = new File(Environment.getExternalStorageDirectory() + "/newap.apk");
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));


        int fileLength = connection.getContentLength();
        int downloadLength = 0;
        int progressLength = 0;
        int n = 0;
        byte[] buffer = new byte[1024];

        while ((n = bis.read(buffer, 0, buffer.length)) != -1) {
            bos.write(buffer, 0, n);
            downloadLength += n;
            progressLength = (int)(((float)downloadLength / fileLength)*100);

            Message msg = new Message();
            msg.arg1 = progressLength;
            hanlder.sendMessage(msg);

        }

        bis.close();
        bos.close();
        connection.disconnect();

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值