公司开发的Android屏幕设备升级到了11,在进行apk升级进行存储本地的过程中报错

1.首先将apk下载到项目的专属文件夹中,Android/data/包名/

2.上面这个错误就是读取该文件的Uri的时候报的错。

从 Android N 开始,将不允许在 App 间,使用 file:// 的方式,传递一个 File ,(之前的uri的获取方式)否者会抛出 FileUriExposedException的错误,会直接引发 Crash。

那么解决方案为:

1.首先在AndroidManifest.xml下面声明一个provider

<providerandroid:authorities="一般是你的包名.provider"android:name="android.support.v4.content.FileProvider"android:grantUriPermissions="true"android:exported="false"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/filepaths"/>
</provider>

2.然后在res的xml文件夹下创建上面提到的filepaths文件

<?xml version="1.0" encoding="utf-8"?>
<paths><external-cache-path   path="." name="update.apk"/>
</paths>

「external-cache-path」表示Android/data/包名/cache, 在代码中对应为Context.getExternalCacheDir()

比如Android/data/包名/cache/imgs/dog.jpg

「path」代表Android/data/包名/cache的子目录名字,这个例子中就是imgs

「name」代表最终的文件名字,上面例子中就是dog.jpg


「external-cache-path」同样级别的标签还有很多,这个表格是对应表

files-path /data/data/<包名>/files
cache-path /data/data/<包名>/cache
external-path /storage/emulate/0
external-files-path /storage/emulate/0/Android/data/<包名>/files
external-cache-path /storage/emulate/0/Android/data/<包名>/cache

3.获取Uri时用FileProvider的方式

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {uri = FileProvider.getUriForFile(UpdateService.this,『你的包名』+".provider",new File(filePath));}

注意:!!!

上面的第二个参数是这个方法的authority,务必和Androidmanifest中申请的一样。
    android:authorities="一般是你的包名.provider",否则会找不到这个抛空指针异常

7.0以上android.os.FileUriExposedException: file:///storage/emulated/0/xxx.xxx exposed beyond app的bug解决相关推荐

  1. Android7.0解决 android.os.FileUriExposedException: file:///storage/emulated/0/

    解决Android N文件访问crash android.os.FileUriExposedException file:///storage/emulated/0/xxx 原因: Android N ...

  2. 解决 Android N 上报错:android.os.FileUriExposedException: file:///storage/emulated/0/

    解决android N文件访问crash android.os.FileUriExposedException file:///storage/emulated/0/xxx 原因: Android N ...

  3. Android打开相机,报出 android.os.FileUriExposedException: file:///storage/emulated/0/test/img.jpg exposed

    执行以下代码后,打开相机 //调用相机自带的照相功能 指定图片目录 if (Environment.getExternalStorageState().endsWith(Environment.MED ...

  4. android os FileUriExposedException file storage emulated 0 test tx

    错误出现原因: 在Android版本7.0以上,应用之间文件访问权限修改. 解决办法: 我们需要使用FileProvider允许其他应用访问本应用创建的文件或文件夹,首先需要创建继承android.s ...

  5. android.os.FileUriExposedException: file:///storage/emulated/0/pictures/1564739776566.jpg exposed be

    问题: 原因:Android N(对应sdk24)(版本7.0)及以上对访问文件权限收回,按照Android N的要求,若要在应用间共享文件,您应发送一项 content://URI,并授予 URI ...

  6. android.os.FileUriExposedException: file:///storage/emulated/0/myxmpp/154094

    在项目的MainActivity的开始添加下面这段代码 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {StrictMode.VmPol ...

  7. android.os.FileUriExposedException: file:///storage/emulated/0/myimage/15115

    复制的https://blog.csdn.net/qq_33210042/article/details/78626701 管用!已收藏 //取消严格模式 FileProvider if (Build ...

  8. FileUriExposedException: file:///storage/emulated/0/Android/data/com.skyrin.bingo/cache/app/app.apk

    安卓在app更新的时候file parseuri 报错FileuriExposedException:.................exposed beyond app through Inten ...

  9. FileUriExposedException: file:///storage/emulated/0/001/1612321465868.mp4 exposed beyond app through

    我在调用系统相机的时候报错 private void openCamera() {Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE) ...

  10. 安卓开发拍照时闪退遇到问题: file:///storage/emulated/0/0.jpg exposed beyond app through ClipData.Item.getUri()

    问题描述: 打开摄像头拍照时程序闪退,错误提示如下: android.os.FileUriExposedException: file:///storage/emulated/0/RadioDirec ...

最新文章

  1. 如何实现electron多页面间通信
  2. 十六进制转byte变负数
  3. ssh项目放到服务器上出现404,项目运行一段时间,后台程序无法启动,404错误
  4. 使用GUI工具Portainer.io管控Docker容器
  5. 牛客练习赛46T1-华华教奕奕写几何【数学】
  6. 标题 日期问题java蓝桥杯,日期类的使用(java)-蓝桥杯
  7. bresenham算法画圆mfc实现_kd-tree理论以及在PCL 中的代码的实现
  8. Security+ 学习笔记34 硬件安全
  9. uva 12230 - Crossing Rivers(概率)
  10. windows mac谷歌浏览器跨域
  11. /dev/sda is entire device, not just one partition. Refusing to make a filesystem here
  12. JTA transaction unexpectedly rolled back (maybe due to a timeout)
  13. Android APP在线自动更新安装
  14. 数学笔记27——极坐标下的面积
  15. c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现
  16. 比赛必备 ︱ 省力搞定三款词向量训练 + OOV词向量问题的可性方案
  17. linux 内存 内核参数详解,linux系统内核参数说明
  18. 1793D Moscow Gorillas
  19. 东师理想运维工具开发路线图(第一阶段)
  20. bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士

热门文章

  1. 华中科技大学计算机考研机试KY222 打印日期
  2. C++学习笔记:类的多重继承派生(eg:person、account、admin和master类)
  3. 深度学习中为什么普遍使用BGR而不用RGB?
  4. vn.py源码解读(二、实盘交易代码分析)
  5. Android短信保存流程,Android短信收发流程(应用层).doc
  6. 电壁挂炉成为南方用户首选
  7. 当金融科技遇见实时计算,业界有哪些创新应用?
  8. 配套规则再细化,科创板进入最后冲刺阶段
  9. Java小游戏-下落打击式游戏
  10. VMware vRealize Operations 8.6 下载 - 自动驾驶式 IT 运维管理