webview的一个崩溃

复制代码
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Infinix/X678B-RU/Infinix-X678B:14/UP1A.231005.007/250415V853:user/release-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2025-11-19 14:22:27.040470407+0300
Process uptime: 177s
Cmdline: 
pid: 14686, tid: 14686, name: org.yeshen.app  >>>  <<<
uid: 10460
tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0x00000076d57a7ac4
    x0  0000007a0efb6000  x1  0000007000018660  x2  00000076d76b1754  x3  00000070000782c3
    x4  0000007000004070  x5  0000007000028e70  x6  000000000000003d  x7  0000007fe03e6a7f
    x8  0000000000000001  x9  0000007a23c9a040  x10 0000000000000001  x11 0000000000000001
    x12 0000000000000000  x13 0000000000000001  x14 0000000000000000  x15 0000000100003e00
    x16 00000076dd64d7e8  x17 0000007a0b4e3b60  x18 0000007a2497c000  x19 00000076dd7e2698
    x20 0000007000018660  x21 00000076dd7e2000  x22 00000076dd7e1628  x23 00000076dd793000
    x24 00000076dd7e2000  x25 00000076dd683000  x26 00000076d33f89db  x27 00000076dd7dd000
    x28 0000007fe03e6f50  x29 0000007fe03e6bb0
    lr  00000076d4dd9124  sp  0000007fe03e6b60  pc  00000076d57a7ac4  pst 0000000060001000
74 total frames
backtrace:
      #00 pc 0000000002b96ac4  /data/app/~~5BLokFKQjJSKLFkPYUSksw==/com.google.android.trichromelibrary_739012233-f8vUUcHjqycaXY2KWlDcRg==/base.apk!libmonochrome_64.so (offset 0x8dc000) (BuildId: fe77ae077f3105cd8edc7dc00bd123215fff00ef)
      #01 pc 00000000021c8120  /data/app/~~5BLokFKQjJSKLFkPYUSksw==/com.google.android.trichromelibrary_739012233-f8vUUcHjqycaXY2KWlDcRg==/base.apk!libmonochrome_64.so (offset 0x8dc000) (BuildId: fe77ae077f3105cd8edc7dc00bd123215fff00ef)
      #02 pc 0000000005965710  /data/app/~~5BLokFKQjJSKLFkPYUSksw==/com.google.android.trichromelibrary_739012233-f8vUUcHjqycaXY2KWlDcRg==/base.apk!libmonochrome_64.so (offset 0x8dc000) (BuildId: fe77ae077f3105cd8edc7dc00bd123215fff00ef)
      #03 pc 0000000005960424  /data/app/~~5BLokFKQjJSKLFkPYUSksw==/com.google.android.trichromelibrary_739012233-f8vUUcHjqycaXY2KWlDcRg==/base.apk!libmonochrome_64.so (offset 0x8dc000) (BuildId: fe77ae077f3105cd8edc7dc00bd123215fff00ef)
      #04 pc 000000000596018c  /data/app/~~5BLokFKQjJSKLFkPYUSksw==/com.google.android.trichromelibrary_739012233-f8vUUcHjqycaXY2KWlDcRg==/base.apk!libmonochrome_64.so (offset 0x8dc000) (BuildId: fe77ae077f3105cd8edc7dc00bd123215fff00ef)
      #05 pc 0000000000f508e0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+112)
      #06 pc 0000000000689408  /apex/com.android.art/lib64/libart.so (nterp_helper+152) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #07 pc 00000000001df12e  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (org.chromium.content.browser.BrowserStartupControllerImpl.a+10)
      #08 pc 000000000068a2c4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #09 pc 00000000001df686  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (org.chromium.content.browser.BrowserStartupControllerImpl.i+114)
      #10 pc 000000000068a2c4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #11 pc 00000000001c090e  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (org.chromium.android_webview.AwBrowserProcess.b+66)
      #12 pc 00000000006893a4  /apex/com.android.art/lib64/libart.so (nterp_helper+52) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #13 pc 0000000000191ef6  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (WV.o13.run+130)
      #14 pc 000000000068b0e4  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #15 pc 0000000000192282  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (WV.v13.run+162)
      #16 pc 000000000068b0e4  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #17 pc 00000000001923c8  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (WV.x13.b+12)
      #18 pc 000000000068a2c4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #19 pc 00000000001ac15a  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (com.android.webview.chromium.n0.i+234)
      #20 pc 000000000068a2c4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #21 pc 00000000001ab70a  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (com.android.webview.chromium.n0.m+126)
      #22 pc 000000000068a2c4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #23 pc 00000000001ac2b6  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (com.android.webview.chromium.n0.l+2)
      #24 pc 000000000068a2c4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #25 pc 00000000001b18c0  /data/app/~~0ckjQNfcye8hR4686-l5EA==/com.google.android.webview-dSTbcbEerDn5M4UwtGXJ5g==/base.apk (com.android.webview.chromium.WebViewChromium.init+232)
      #26 pc 0000000000cfb7f0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.webkit.WebView.<init>+1024)
      #27 pc 0000000000cfb374  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.webkit.WebView.<init>+68)
      #28 pc 000000000068a320  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #29 pc 00000000004802f4  /data/app/~~WStMa1kFKiUsNpoBVe-9DQ==/-5MpLYCMUPKXwYDdDr21VZQ==/base.apk (com.gzsll.jsbridge.WVJBWebView.<init>+0)
      #30 pc 0000000000317194  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #31 pc 000000000062437c  /apex/com.android.art/lib64/libart.so (art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*) (.__uniq.114100828369361150012403296395805223021)+724) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #32 pc 0000000000f4ed14  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+100)
      #33 pc 0000000000b1f690  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.LayoutInflater.createView+2656)
      #34 pc 0000000000b20464  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.LayoutInflater.createViewFromTag+1316)
      #35 pc 0000000000b216fc  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.LayoutInflater.rInflate+732)
      #36 pc 0000000000b21760  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.LayoutInflater.rInflate+832)
      #37 pc 0000000000b20dd8  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.LayoutInflater.inflate+1032)
      #38 pc 0000000000b20944  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.LayoutInflater.inflate+212)
      #39 pc 0000000000317194  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #40 pc 000000000066a984  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+1580) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #41 pc 00000000006717fc  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+868) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #42 pc 00000000002ff738  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #43 pc 0000000000237b64  /data/app/~~WStMa1kFKiUsNpoBVe-9DQ==/-5MpLYCMUPKXwYDdDr21VZQ==/base.apk (T5.s.b+0)
      #44 pc 0000000000300b2c  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.4837409187647361565)+332) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #45 pc 0000000000300360  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+888) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #46 pc 000000000032e638  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #47 pc 0000000000689408  /apex/com.android.art/lib64/libart.so (nterp_helper+152) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #48 pc 00000000004a8ddc  /data/app/~~WStMa1kFKiUsNpoBVe-9DQ==/-5MpLYCMUPKXwYDdDr21VZQ==/base.apk (.web.WebViewActivity.onCreate+92)
      #49 pc 00000000008f883c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.Activity.performCreate+924)
      #50 pc 0000000000653290  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.Instrumentation.callActivityOnCreate+80)
      #51 pc 000000000073bcc4  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.performLaunchActivity+6740)
      #52 pc 0000000000745668  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.handleLaunchActivity+1336)
      #53 pc 00000000009070a4  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.servertransaction.LaunchActivityItem.execute+356)
      #54 pc 000000000068775c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.servertransaction.TransactionExecutor.executeCallbacks+572)
      #55 pc 0000000000687498  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.servertransaction.TransactionExecutor.execute+728)
      #56 pc 00000000007218bc  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread$H.handleMessage+1916)
      #57 pc 00000000009adb88  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Handler.dispatchMessage+152)
      #58 pc 00000000009b1750  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+1008)
      #59 pc 00000000009b12a8  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+936)
      #60 pc 000000000073a074  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+2100)
      #61 pc 0000000000317460  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #62 pc 0000000000311508  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+544) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #63 pc 00000000005c82c8  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #64 pc 0000000000f4ee24  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+116)
      #65 pc 0000000000b90b74  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+116)
      #66 pc 0000000000b9bf30  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3312)
      #67 pc 0000000000317460  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #68 pc 0000000000316100  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+800) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #69 pc 0000000000639868  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+156) (BuildId: eb4ec0f1d1c7267591d83fa87cb36390)
      #70 pc 00000000000deca8  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+104) (BuildId: 4af74d8dc75d2b94a998f393c7ba8d19)
      #71 pc 00000000000eae2c  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+940) (BuildId: 4af74d8dc75d2b94a998f393c7ba8d19)
      #72 pc 000000000000254c  /system/bin/app_process64 (main+1260) (BuildId: b8d2813b499be9f10b5755c6bdb63d8b)
      #73 pc 00000000000546e8  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+104) (BuildId: e2d9c5ba32145bb6e11e59494ee68593)

看起来是webview崩溃,下面是ai的解释...


这个崩溃日志表明设备上的 WebView 组件(libmonochrome_64.so)遇到了一个严重的原生层错误。以下是分析和解决方案:


崩溃原因分析

  1. SIGILL (Signal 4):

    • 表示处理器遇到了非法指令(ILL_ILLOPC)。
    • 常见原因:
      • 设备 CPU 不支持某些指令集(如 ARMv8.5 的 MT E 特性)。
      • 二进制文件与设备 CPU 架构不兼容。
      • 内存损坏或编译器优化问题。
  2. tagged_addr_ctrl: 0000000000000001:

    • 表明启用了 ARM 内存标签扩展(MTE)PR_TAGGED_ADDR_ENABLE)。
    • 关键问题 :您的设备(Infinix X678B 搭载联发科 Helio G25/G35)基于 ARMv8.0 架构,不支持 MTE 特性(MTE 需要 ARMv8.5+)。WebView 可能错误启用了此功能,导致非法指令。
  3. 设备兼容性:

    • Infinix X678B 使用 ARM Cortex-A53 核心(ARMv8-A),但 MTE 是 ARMv8.5 的特性。
    • WebView 更新(如 Chrome 111+)可能默认启用 MTE,在旧设备上触发崩溃。

解决方案

1. 更新系统组件
  • 更新 WebView :
    • 进入 Google Play → 搜索 "Android System WebView" → 更新到最新版本
    • 如果崩溃持续,尝试 卸载 WebView 更新 (回退到稳定版本):
      • 设置 → 应用 → 显示系统应用 → Android System WebView → 点击右上角 ⋮ → 卸载更新。
  • 更新操作系统 :
    • 检查系统更新(设置 → 系统更新),厂商可能已修复兼容性问题。
2. 禁用 MTE 特性
  • 添加启动参数 (需 root 权限):
    /data/local.prop 文件中添加:

    复制代码
    ro.arm64.memtag.appctl=0

    重启设备。这会全局禁用 MTE。

  • 通过 ADB 临时禁用 (每次重启需重新执行):

    bash 复制代码
    adb shell settings put global arm64_memtag_app_compat 0
3. 应用层规避
  • 捕获 WebView 崩溃 (在 App 代码中):

    java 复制代码
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean onRenderProcessGone(WebView view, RenderProcessGoneDetail detail) {
            if (detail.didCrash()) {
                // 处理崩溃(如重新初始化 WebView)
                recreateWebView();
                return true; // 表示已处理
            }
            return false;
        }
    });
  • 降级 WebView 版本 :
    build.gradle 中强制使用旧版 WebView:

    gradle 复制代码
    dependencies {
        implementation 'androidx.webkit:webkit:1.5.0' // 避免较新版本
    }
4. 设备级修复
  • 清除 WebView 数据 :
    设置 → 应用 → Android System WebView → 存储 → 清除数据/缓存。
  • 更换 WebView 实现 :
    在开发者选项中启用 "独立 WebView 进程"(设置 → 开发者选项 → WebView 实现 → 选择其他渲染引擎)。
5. 联系厂商/Google
  • 如果问题普遍存在,反馈给设备厂商(Infinix)或提交 Chromium 漏洞报告:

预防措施

  • 测试旧设备兼容性:在 ARMv8.0 及以下设备上测试 WebView 新特性。

  • 动态检测 MTE 支持

    java 复制代码
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
        boolean isMTESupported = WebViewFeature
    }
    ``
相关推荐
游戏开发爱好者82 天前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
2501_915106322 天前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview
2501_915918413 天前
在 iOS 环境下查看 App 详细信息与文件目录
android·ios·小程序·https·uni-app·iphone·webview
2501_916007473 天前
没有 Mac 用户如何上架 App Store,IPA生成、证书与描述文件管理、跨平台上传
android·macos·ios·小程序·uni-app·iphone·webview
2501_915106324 天前
当 Perfdog 开始收费之后,我重新整理了一替代方案
android·ios·小程序·https·uni-app·iphone·webview
2501_915918414 天前
中小团队发布,跨平台 iOS 上架,证书、描述文件创建管理,测试分发一体化方案
android·ios·小程序·https·uni-app·iphone·webview
2501_915106324 天前
iOS 如何绕过 ATS 发送请求,iOS调试
android·ios·小程序·https·uni-app·iphone·webview
2501_915918415 天前
常见 iOS 抓包工具的使用,从代理抓包、设备抓包到数据流抓包
android·ios·小程序·https·uni-app·iphone·webview
2501_915918416 天前
把 iOS 性能监控融入日常开发与测试流程的做法
android·ios·小程序·https·uni-app·iphone·webview
2501_915106329 天前
混合应用(Hybrid)安全加固,不依赖源码对成品 IPA 混淆
android·安全·小程序·https·uni-app·iphone·webview