bug场景:
应用内升级下载apk完成后安装,6.0及以下的手机会报解析包错误,7.0及以上的手机是没问题的。开始以为是v1,v2签名问题导致的,但是我用浏览器下载下来的安装包是能够正确安装的。排除v1,v2签名的问题。研究半天终于发现问题所在:
原来我把下载的apk文件放在了getCacheDir().getAbsolutePath()的目录下,而不是sd中,这就导致apk文件没有相应的权限,不能被正确解析。
参考:解决APK下载到Cache目录安装提示“解析安装包失败”的问题
解决方案1:
调用安装的时候给文件授权:
public static void install(Context context, File apkFile) { try { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW);