为什么是二呢,之前遇到过一次了,详见http://blog.csdn.net/jason0539/article/details/12222173

这次的原因不同,再记录下

public class DownloadTask {/** * @param path下载地址 * @param filePath存储路径 * @param progressDialog进度条 * @return * @throws Exception */public static File getFile(String path,String filePath,ProgressDialog progressDialog) throws Exception{URL url = new URL(path);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setConnectTimeout(2000);connection.setRequestMethod("GET");if(connection.getResponseCode() == 200){int total = connection.getContentLength();progressDialog.setMax(total);InputStream is = connection.getInputStream();//获得socket输入流File file = new File(filePath);FileOutputStream fos = new FileOutputStream(file);//file输出流byte[] buffer = new byte[1024];int len;int progress = 0;while((len = is.read(buffer)) != -1){fos.write(buffer);progress += len;progressDialog.setProgress(progress);}fos.flush();is.close();fos.close();connection.disconnect();return file;}return null;}


这是一个执行下载任务的类,用来从服务器下载更新用的apk,结果下载成功后,跳转到安装页面,却提示解析包时出现错误,这样的错误真是让人头疼,跟代码无关,没有头绪。

后来发现有类似情况http://bbs.csdn.net/topics/380117090?page=1#post-397007671

但是没有解决方案,对比发现下载来的apk和服务器文件夹里的apk大小有些差别,我就尝试把每次读取的byte[]做小一点,也就是

byte[] buffer = new byte[1024];

这行代码,把1024改成了128,又改成了64,结果就没问题了。

意外的收货。你也遇到类似问题的话尝试一下,good luck。

 

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)


 

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 万字长文带你了解最常用的开源 Squid 代理服务器
  3. Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务
  4. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  5. Android之Handler的post注意事项
  6. Android仿硅谷商城实现购物车实例代码
  7. 四则运算第一次冲刺
  8. android viewpager2+tablayout+ConstraintLayout的坑
  9. Android(安卓)Stuido无法下载jcenter库

随机推荐

  1. 常用代码合集一
  2. Android缩放动画
  3. Android(安卓)dumpsys 命令解析
  4. 如何查看Android设备的CPU架构信息
  5. Android实现图片帮助跳转以及选择重拍Sql
  6. Android开机启动流程说明
  7. Some useful Android(安卓)components
  8. android&&TableLayout
  9. Android下载网络图片到本地
  10. Flutter 图片保存到本地