admin管理员组

文章数量:1558103

在实现APP自动更新的过程中,发现安装包成功下载到本地了,但是在安装时,却报了“解析软件包时出现错误”,如下:

参考众多博客后,找到了答案
原代码:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(getUriForFile(mContext,apkFile),"application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);

修改后:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(getUriForFile(mContext,apkFile),"application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//加了这句,原博主的解释是:添加这一句表示对目标应用临时授权该Uri所代表的文件
mContext.startActivity(intent);

在此之前还遇到了其他问题,列在下面:
解决android.os.FileUriExposedException: file:///storage/emulated/0/xxx.xxx exposed beyond app through Intent.getData()崩溃异常,参考解决办法①
Android开发:解决 Android N 7.0 上 报错:android.os.FileUriExposedException中的“通用的步骤”

Android7.0以上系统无法跳转到APK安装页

软件更新功能参考博客:
android实现软件自动更新的步骤
简单实现安卓自动更新

本文标签: 软件包自动更新出现错误软件android