今天在一个小伙伴的手机上测试版本更新功能,每次安装APK的时候都会提示“解析软件包时出现问题”,手机型号为小米3,系统版本为MIUI10开发版,在其他小米手机上则可以正常安装。
- 首先怀疑是不是下载不完整导致的,但是对比了MD5值,是正确的。
- 是否是系统BUG?测试其他APP的版本更新功能,发现是正常的。
- 那会不会是权限问题呢,因为我下载的APK文件会存放在缓存文件夹里,有可能安装程序没有权限访问APP内部缓存文件,于是将getCacheDir()修改为getExternalCacheDir(),结果正常了。
- 随后在网上发现有人通过修改文件权限也解决了这个问题,但是我没测试过,不保证有效。
//chmod("777", path);
public void chmod(String permission, String path) {
try {
String command = "chmod " + permission + " " + path;
Runtime runtime = Runtime.getRuntime();
runtime.exec(command);
} catch (IOException e) {
e.printStackTrace();
}
}