You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Resources$NotFoundException异常及Chromium组件相关疑问

崩溃问题分析与修复建议

一、崩溃触发原因推测

从崩溃栈来看,核心错误是Resources$NotFoundException: Resource ID #0x20c003b——Chromium框架尝试获取的某个系统整数资源,在当前设备的系统资源库中不存在。

具体触发路径为:当Chromium的SelectionPopupControllerImpl启动文本选择操作模式时,会调用DeviceFormFactor类读取该系统资源,而部分设备(尤其是定制ROM或系统版本不匹配的机型)缺失这个资源,最终引发崩溃。简言之:文本选择弹窗触发时,Chromium依赖的系统资源在特定设备上找不到,导致崩溃。

二、org.chromium.content.browser.selection.SelectionPopupControllerImpl类及方法说明

  • SelectionPopupControllerImpl类:是Chromium内核中负责管理文本选择后操作菜单(比如复制、粘贴、全选等)的核心类,主要处理文本选择区域检测、弹窗显隐控制、交互事件分发等逻辑。
  • B方法(对应栈中第489行):作用是启动文本选择的操作模式(ActionMode),触发系统级文本选择工具栏的显示,是连接Chromium选择逻辑与系统UI的关键步骤。

三、修复建议

  • 兼容系统资源差异:针对崩溃设备,在调用Resources.getInteger前先做资源存在性校验,避免抛出异常:
    try {
        Resources.getInteger(0x20c003b);
    } catch (Resources.NotFoundException e) {
        // 使用预设默认值替代,或根据设备类型手动设置参数
    }
    
  • 升级Chromium内核:如果使用的是较旧的Chromium分支,尝试升级到稳定版,新版本通常会修复这类系统资源依赖的兼容性问题。
  • 拦截文本选择逻辑:如果业务场景不需要Chromium默认的选择弹窗,可以通过自定义WebView拦截文本选择事件,避免触发SelectionPopupControllerImpl的相关流程。
  • 补充系统资源:若为可控的自定义ROM设备,检查是否缺失Android标准资源,补充对应资源文件(仅适用于自有设备环境)。

崩溃日志:

Fatal Exception: android.content.res.Resources$NotFoundException: Resource ID #0x20c003b
   at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:264)
   at android.content.res.Resources.getInteger(Resources.java:1201)
   at org.chromium.ui.base.DeviceFormFactor.a(DeviceFormFactor.java:107)
   at R8.onCreateActionMode(R8.java:722)
   at com.android.internal.policy.DecorView$ActionModeCallback2Wrapper.onCreateActionMode(DecorView.java:2840)
   at com.android.internal.policy.DecorView.startActionMode(DecorView.java:1012)
   at com.android.internal.policy.DecorView.startActionModeForChild(DecorView.java:968)
  
   at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:1033)
   at android.view.View.startActionMode(View.java:7774)
   at org.chromium.content.browser.selection.SelectionPopupControllerImpl.B(SelectionPopupControllerImpl.java:489)
   at di0.a(di0.java:1587)
   at Fl0.i(Fl0.java:259)
   at T6.run(T6.java:454)
   at android.os.Handler.handleCallback(Handler.java:938)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:264)
   at android.app.ActivityThread.main(ActivityThread.java:8312)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)

内容的提问来源于stack exchange,提问作者Vikas Pandey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:15:27