升级到android9.0,在Android 8.1.0   oppo A5 报以下错误:

2021-04-07 09:46:38.078 18428-20051/? W/PackageInstaller.PackageInstaller: Error staging apk from content URIjava.io.FileNotFoundException: No content provider: content://com.xxx.xxx.fileprovider/camera_photos/xxx123.apkat android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1415)at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1266)at android.content.ContentResolver.openInputStream(ContentResolver.java:986)at com.android.packageinstaller.ck.a(OppoPackageInstallerActivity.java:3278)at com.android.packageinstaller.ck.doInBackground(OppoPackageInstallerActivity.java:3214)at android.os.AsyncTask$2.call(AsyncTask.java:333)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)at java.lang.Thread.run(Thread.java:764)

在排查了以下代码:

    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
public void installApplication(File fileapk) {this.mApkFile=fileapk;//int targetSdkVersion = this.getApplicationInfo().targetSdkVersion;//8.0后需要判断权限,targetSdkVersion小于26无需开启权限if (Build.VERSION.SDK_INT >=AndroidBuild.VERSION_CODES.O) {boolean hasInstallPermission = isHasInstallPermissionWithO(this);if (!hasInstallPermission) {startInstallPermissionSettingActivity();return;}}installApp();}private void installApp() {Intent intent = new Intent(Intent.ACTION_VIEW);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//intent.setDataAndType(FileProviderUtils.getFileForUri(this,mApkFile,intent), "application/vnd.android.package-archive");FileProviderUtils.setIntentDataAndType(NewBaseApplication.getAppContext(),intent, "application/vnd.android.package-archive", mApkFile, true);startActivity(intent);ActivityStackUtils.getInstance().finishAllActivity(this, true);//部分手机需要注释掉这行代码android.os.Process.killProcess(android.os.Process.myPid());}@RequiresApi(api = AndroidBuild.VERSION_CODES.O)private boolean isHasInstallPermissionWithO(Context context){if (context == null){return false;}return context.getPackageManager().canRequestPackageInstalls();}
FileProviderUtils.java
  public static Uri getFileForUri(Context context, File mHeaderFile) {if (Build.VERSION.SDK_INT >= AndroidBuild.VERSION_CODES.N) {Uri imageUri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", mHeaderFile);//通过return imageUri;} else {return Uri.fromFile(mHeaderFile);}}public static void setIntentDataAndType(Context context,Intent intent,String type,File file,boolean writeAble) {if (Build.VERSION.SDK_INT >= AndroidBuild.VERSION_CODES.N) {Uri uri=getFileForUri(context, file);intent.setDataAndType(uri, type);intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);if (writeAble) {intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);}grantPermissions(context,intent,uri,writeAble);} else {intent.setDataAndType(Uri.fromFile(file), type);}}public static void grantPermissions(Context context, Intent intent, Uri uri, boolean writeAble) {int flag = Intent.FLAG_GRANT_READ_URI_PERMISSION;if (writeAble) {flag |= Intent.FLAG_GRANT_WRITE_URI_PERMISSION;}intent.addFlags(flag);List<ResolveInfo> resInfoList = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);for (ResolveInfo resolveInfo : resInfoList) {String packageName = resolveInfo.activityInfo.packageName;context.grantUriPermission(packageName, uri, flag);}}

最后把 手机管家-->权限隐私-->关联启动管理  里的当前应用 权限打开,就不会报错了

Android 8.1.0 oppo A5 解析包时出现问题 解决思路相关推荐

  1. android 7.0 以上 解析包时出现问题 解决思路

    有些手机更新包时下载完包后,杀死原有app跳到解析安装包的页面后,报解析安装包失败的错误.在有些手机上是没问题的.想起来有人问过我类似的问题,说是android8.0系统的问题.8.0上google把 ...

  2. Android 7.0解析包时出现问题 的解决方案(应用内更新)

    在工作上遇到了一个关于下载更新安装包无法安装的问题,解决之后特地在这里做一个笔记,遇到相似问题的朋友可以试试看能不能解决自己的问题. 问题描述 我们在进行Android开发的时候,一般都会在应用里检测 ...

  3. 【Android开发】app升级报错,解析包时出现错误(华为手机8.0系统)

    问题描述: 今天发布app版本升级,碰到华为手机8.0系统,安装升级的时候提示,解析包时出现问题.而其他手机都是正常的.而且当我的包没有经过360加固的时候,也是可以去升级新版本,加固过后就不行了. ...

  4. Android 7.0解析包时出现问题 的解决方案(版本更新)

    问题描述 我们在进行Android开发的时候,一般都会在应用里检测有没有更新,并且从网上下载最新的版本包,覆盖本地的旧版本.在我的项目中,出现了一个问题,就是当安装包下载到本地的时候,产生了" ...

  5. 华为手机android7.0应用中百度地图加载不出来解析包时出现问题

    第一次写博客,写的不好请各路大神多多海涵. 之前写的app在华为手机上出现了问题,android版本是7.0.据统计,android7.0和7.1的市场份额分别是:安卓7.0的份额为0.5%,安卓7. ...

  6. android studio无app项,Android studio 3.0:无法解析依赖:app @ dexOptions

    Android studio 3.0:无法解析依赖:app @ dexOptions 我迁移到Android studio 3.0.因此,项目无法编译名为":animator"的模 ...

  7. android7.0版本更新出现解析包错误问题,求帮助

    一个是我下载时的代码 一个是下载完区分7.0以上或以下的代码 为什么会出现解析包的问题,怎么解决

  8. android之解析包时出现错误(二)

    为什么是二呢,之前遇到过一次了,详见http://blog.csdn.net/jason0539/article/details/12222173 这次的原因不同,再记录下 public class ...

  9. 软件内部更新,出现“解析包时出现问题”的错误后停止

    参考:connection.getContentLength()为负值 android 解析包时出现问题 常见原因: 下载的apk与安装的apk路径不一致(对比路径) apk没有下载完全(比较下载的a ...

最新文章

  1. 实况CDN专线网络技术架构如何?
  2. 基于matlab 的燃油喷雾图像处理方法,基于MATLAB的燃油喷雾图像处理方法.doc
  3. jQuery的内容选择器和属性
  4. Windows程序设计_19_测试Windows应用程序加载函数
  5. Jenkins通过FTP上传站点太多文件导致太慢且不稳定,切换为压包上传再解压的思路(asp.net)...
  6. 纯前端实现pdf分页下载,完美支持横屏竖屏
  7. 解释什么是计算机硬件和软件,什么叫软件,什么叫硬件?(要详细)
  8. 数学建模——模拟退火优化投影寻踪
  9. Word文档恢复,2大方案教你找回没有保存或者被删除的数据
  10. 在线图片处理api接口
  11. win10控制面板快捷打开方式
  12. CFBI中国金融科技与区块链创新峰会2017年度盛会
  13. Navicat12.0.29_Premium_cs_x64激活
  14. vue无法加载文件C:\Users\Administrator\AppData\Roaming\npm\vue.ps1因为在此系统上禁止运行脚本……解决办法
  15. Matplotlib做动图(基础版)
  16. java计算机毕业设计高校教学资源库设计与实现---源码+mysql数据库+系统+lw文档+部署
  17. in a frame because it set 'X-Frame-Options' to 'sameorigin'
  18. 《心智社会》—马文·明斯基
  19. 鸿蒙操作系统细节曝光,华为鸿蒙系统细节曝光 UI 重绘动画多 / 系统简介更流畅...
  20. 【干货】企业邮箱外贸开发信退信高,警惕被列入黑名单!

热门文章

  1. Word文件删除限制密码的方法
  2. @JsonFormat注解使用
  3. 2019-9-2-一粒在时空轮回的粒子会发生什么
  4. 电脑中毒软件都变成java图标_当前数据表有10条记录,若用函数EOF()测试结果为.T.,此时函数RECNO()值是________。 (2.0分)_学小易找答案...
  5. 什么是幻读?以及如何解决幻读问题?
  6. C语言以字符串为索引求数组值,C05 C语言字符串和数组
  7. AD笔记:设计多通道图纸,以及多通道位号格式设置
  8. 苹果降频门:旧款iPhone哪些功能受到影响
  9. 扫清电路设计软件盲点,protel DXP电路设计软件批量修改
  10. 2018年职称英语计算机考试,2018年职称英语考试综合A词汇精选试题