今天在测试客户端升级的时候,突然发现客户端在升级的时候下载成功升级包后,安装过程中提示“解析包时出现错误”,因为这个错误可能有多个问题导致,比如安装包下载不完整等。
然后我检查了一下下载后的安装包,单独安装是可以的,所以说明包是没问题的;然后我又检查了一下对应的证书签名是否一致,也是一致的,所以这个问题应该不是出在这里,然后就开始看升级这部分的代码,才发现这个问题的原因。
代码中写的是将下载成功后的安装包保存到了该应用的包目录下,这里是不对的,因为应用包目录只有应用本身有读取权限,系统安装程序是没有访问这个文件或目录的权限的。
经过修改后,应该把安装包放到SD卡目录(需要判断是否有SD卡)或者包资源路径。
Environment.getExternalStorageDirectory().getPath();
context.getPackageResourcePath();