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

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

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

解析错误:解析软件包时出现问题_第1张图片


解析错误:解析软件包时出现问题_第2张图片


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

 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();
    }
}


你可能感兴趣的:(Android,android)