问题概述

问题描述

Android 9.0及以上版本,多进程使用WebView会引发程序崩溃。

官方说明

在 Android 9 中,为改善应用稳定性和数据完整性,应用无法再让多个进程共享一个 WebView 数据目录。
如果您的应用必须在多个进程中使用 WebView 实例,则您必须先使用 WebView.setDataDirectorySuffix() 方法为每个进程指定唯一的数据目录后缀,然后再在相应进程中使用 WebView 的给定实例。该方法会将每个进程的网络数据放入应用数据目录内其自己的目录中。

解决办法

官方文档理解

本人对官方文档这段说明理解如下:

  1. 在一个APP内部,存在多个进程A,B,C等都使用WebView的话,在9.0系统以上就会报错,不支持同时使用多个进程中具有相同数据目录的WebView。
  2. 解决办法是为调用WebView的每个进程重新制定其唯一的数据目录。

代码示例

    private fun configWebViewCacheDirWithAndroidP() {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {var processName = getProcessName()if (packageName != processName) {WebView.setDataDirectorySuffix(processName)}}}

备注说明

configWebViewCacheDirWithAndroidP()方法的调用需要符合如下条件,否则可能还会出错:

  1. 一定是在进程初始化的时候调用,比如Application中进行调用
  2. 并且这行代码需要在其他的SDK等等初始化之前就要调用

作者:葬星陨梦
链接:https://www.jianshu.com/p/b154dcecd1fd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Android 9.0 WebView多进程问题相关推荐

  1. 多进程android webview,Android 9.0 WebView多进程闪退问题

    问题描述 Android 9.0及以上版本,多进程使用WebView会引发应用程序崩溃. 官方说明:在Android 9.0中,为改善应用稳定性和数据完整性,应用无法再让多个进程共享一个WebView ...

  2. Android 8.0学习 (36)---Android 8.0 WebView 拍照、简易预览、二维码扫描 各种问题解决

    Android 8.0 WebView 拍照.简易预览.二维码扫描 各种问题解决 项目用到了WebView包装HTML5做成app使用,其中有页面用到了二维码和拍照上传功能.本人从未做过android ...

  3. 解决Android 8.0 WebView回退失效(判断canGoBack()和调用goBack())

    前言 最新开发项目使用WebView的时候发现华为手机判断是否能回退(canGoBack)的时候失效了,无论打开多少层网页,点击返回按钮都会关闭Activity,一开始以为是华为手机的问题,然后用其他 ...

  4. Eharts在Android 9.0 webview中 不显示 空白 问题解决方案

    这是Android自己webwiew的大坑!! "Android P 以及之后版本不支持同时从多个进程使用具有相同数据目录的WebView" 参考了这位老哥的文章后完美解决了 ht ...

  5. 解决 Android WebView 多进程导致App崩溃

    应用场景 应用内有两个位置用到WebView加载页面,具体处理逻辑不能通用.分别扩展了WebView了.应用内独立页面使用Fragment来展示,(采用单Activity架构).应用提供切换语言功能. ...

  6. Android 各个版本WebView

    转载请注明出处   http://blog.csdn.net/typename/ powered by miechal zhao : miechalzhao@gmail.com 前言: 根据Googl ...

  7. Android 7.0脱坑指南

    本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发. Android适配系列: Android 6.0 的动态权限管理 Android 7.0脱坑指南 Android 8.0适配指北 ...

  8. Android 9.0 版本以上,多进程访问对WebView的影响

    Android 9.0 版本以上,多进程访问对WebView的影响 报错 日志 Caused by: java.lang.RuntimeException: Using WebView from mo ...

  9. android 4.0以上WebView不能全屏播放视频的解决办法

    上次鄙人做了一个简单的利用webView实现的一个浏览器!其中遇到了两个问题,一个是将浏览器中需要下载的内容托管到系统默认的下载程序进行下载,这个比较简单就不在这里讨论了:另一个问题就是我们的Andr ...

最新文章

  1. 在Ubuntu 14.04 64bit上查看硬件配置信息
  2. magento根据浏览次数为商品做排行
  3. Matlab Robotic Toolbox V9.10工具箱(七):Stanford arm 动力学建模与仿真
  4. ABAP程序发送邮件
  5. matlab对像素邻域操作,matlab图像的邻域操作与块操作
  6. Java 7:复制和移动文件和目录
  7. Ajax Control Toolkit 出新版了
  8. npm+node+cordova+ionic 版本匹配
  9. 使用SVN管理unityproject
  10. l360废墨收集垫更换视频_爱普生l353废墨收集垫在哪个位置
  11. slackware下ibus编译安装(更新:2010/10/17)
  12. leetcode(Array)---11,盛最多水的容器
  13. unplugin-auto-import自动导入
  14. GMA Round 1 YGGDRASIL
  15. java 停止定时器_Java/Android计时器(开始,暂停,恢复,停止)
  16. 5个超好用的图片素材库,建议收藏~
  17. JSfunction参数设计的初衷
  18. 软件开发教父与国内高手论道实录全文
  19. TiDB Lightning 故障处理
  20. 我们便暗暗走过了双曲拱桥

热门文章

  1. python读取excel数据并实现数据相乘等其他运算
  2. C语言选择题题库(5)
  3. Ubuntu卸载软件:3种卸载方式
  4. 教你破解复制网站不能文字+白piao某度等各种文档
  5. vant 滚动穿透问题
  6. GitHub开发者被邀合作篇
  7. ddr传输 pl ps_PS/PL之间的数据交互办法
  8. 做咸鱼能够月入10万?我来揭秘一下。
  9. -Xmx512m -Xms256m -Xmn256m 都是什么意思
  10. 基于深度学习的高精度海洋生物检测识别系统(PyTorch+Pyside6+YOLOv5模型)