今天把sdk版本调高了然后安装APK报这个错,手机写的可能排版有点乱,记录一下,将就看吧!

android.os.FileUriExposedException: file:///storage/emulated/0/xxx/xxx.apk exposed beyond app through Intent.getData()

代码是这样的

Intent intent =new Intent(Intent.ACTION_VIEW);intent.setDataAndType(Uri.parse("file://" + str), "application/vnd.android.package-archive");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);

这个代码在7.0以下使用是没问题的,但是在8.1或以上用就会报错

解决方法:
1.在xml文件里新建一个file_paths.xml文件内容如下

<paths xmlns:android="http://schemas.android.com/apk/res/android"><files-path name="apk" path="xiaokang/安装包"/></paths>

name我也不知道什么应该百度搜得到想了解的去百度看看,path是路径也就是/sdcard/xiaokang/安装包这个目录

2.在AndroidMainfest.xml里添加下面的代码

<providerandroid:name="android.support.v4.content.FileProvider"            android:authorities="自己的包名.fileprovider"            android:exported="false"            android:grantUriPermissions="true">         <meta-data        android:name="android.support.FILE_PROVIDER_PATHS"        android:resource="@xml/file_paths" />            ...        </provider>

3.下面是适配的代码

Intent intent = new Intent(Intent.ACTION_VIEW);
install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {    intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);    Uri uri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", apk_file);    intent.setDataAndType(uri, "application/vnd.android.package-archive");} else {    intent.setDataAndType(Uri.fromFile(apk_file), "application/vnd.android.package-archive");}context.startActivity(intent);

这样就能解决这个问题了!

即使这样我的还是报了这个错
java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/xxx/xxx.apk

解决方法
在file_paths文件里添加下面代码

<root-path name="root_path" path="."/>

我这个也是转载的,结合以下两篇文章
1.https://www.kaelli.com/18.html
2.https://www.jianshu.com/p/167cf6c5dfa5

解决安装APK报FileUriExposedException相关推荐

  1. 安装apk报错INSTALL_FAILED_UPDATE_INCOMPATIBLE的解决方法

    安装apk报错INSTALL_FAILED_UPDATE_INCOMPATIBLE的解决方法 参考文章: (1)安装apk报错INSTALL_FAILED_UPDATE_INCOMPATIBLE的解决 ...

  2. 安装APK报错解决方法

    adb install xxx.apk 报错,安装APK报错:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE.INSTALL_PARSE_FAILED_INCONSIS ...

  3. android.os.FileUriExposedException 自动安装APK报错 5分钟搞定Android 7.0+ FileProvider

    android.os.FileUriExposedException 自动安装APK报错  5分钟搞定Android 7.0+ FileProvider 适配步骤: 1. 创建file_paths.x ...

  4. 安装APK报错解决方法【转】

    本文转载自:http://blog.csdn.net/zy1235678/article/details/38122827 adb install xxx.apk 报错,安装APK报错:INSTALL ...

  5. Android P使用pm install安装apk报错

    Android P使用pm install安装apk报错 avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:objec ...

  6. android apk 安装目录成功,记录一次解决安装 Apk 兼容性问题

    原标题:记录一次解决安装 Apk 兼容性问题 问题描述现象 代码执行安装Apk,出现系统弹框解析错误,解析包时出现错误 场景 在华为P20 Android 8.0 手机上,下载Apk并使用通知栏进度条 ...

  7. 如何解决 安装Vmware报msi安装包有问题

    如何解决 安装Vmware报msi安装包有问题 1.的确是这个安装包下载的问题. 解决办法:进入到C:\Users\For\AppData\Local\Temp\下删除这个vmware_1244515 ...

  8. 我的Android进阶之旅------解决Android Studio编译后安装apk报错:The APK file does not exist on disk...

    1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...

  9. 解决Android Studio编译后安装apk报错:The APK file does not exist on disk

    1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...

最新文章

  1. 懂数学人的都认同:数学的本质[关联]万物(二)
  2. kettle的基本介绍
  3. 运动控制卡的基类函数与实现例子
  4. AI从业几年还不具备提出新模型的技术能力?看这个就够了!
  5. C10K 非阻塞 Web 服务器
  6. 智能安防系统如何防火、防盗、防煤气?
  7. Nginx的集群以及负载均衡
  8. VSC 最新版本 加入实用功能Pinned
  9. 域名与DNS域名系统
  10. uboot2021.10-nandflash-3.initr_nand
  11. HTB打靶日记:Bashed
  12. 什么是协同系统?--信息化入门扫盲
  13. 5V升压充电8.4V芯片HU5914
  14. WordPress能承载多大的数据?文章十万百万能承载吗?
  15. 编辑为什么建议转投_SCI的编辑会建议你另投其他期刊吗
  16. 心态-《了不起的我》书中的精髓:爱和期待促使我们改变,不同关系会塑造出不同的自我。
  17. Python NLTK库安装Error:Resource u*corpora/gutenberg* not found.
  18. 加密货币技术架构(一)——BTC、ETH
  19. 华为的鸿蒙系统是海思_华为亮剑,徕卡+海思麒麟1020+鸿蒙系统,手里的Mate30不香了...
  20. 新能源汽车坟场,一万块几辆车,二手新能源汽车太不值钱了

热门文章

  1. 百度地图BaiduMapsApiASDemo中驾车路线RoutePlanDemo的个人理解
  2. rabbitmq搭建与python应用
  3. 遇到的debug整理20190107
  4. Woj 简易题解 Volume #2
  5. 面向对象测试-输出和修改动物信息
  6. The 2019 ACM-ICPC China Shannxi Provincial Programming Contest C.Angel's Journey
  7. docker下载mysql镜像很慢_docker下载镜像太慢的解决方案
  8. 采集百度百家号动态加载的数据信息
  9. aaa认证服务器安装位置,Cisco AAA服务器 安装调试及配置验证
  10. 375个免费Photoshop笔刷