【发布时间】:2023-12-16 02:31:01
【问题描述】:
我的 Android 应用使用基于 Chromium 50(V8 JavaScript 引擎 5.0)的类似控件的 web 视图。由于各种原因,不能使用系统 WebView 或更新的 Chromium 版本。
我在 Android 10 和 arm64 版本的二进制文件上收到了很多 Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR) 崩溃。与旧 Android 版本相同的二进制文件以及与 Android 10 的 32 位版本的二进制文件没有问题。
这是一个包含无限递归函数的示例代码,它会崩溃:
webView.evaluateJavascript("(function a(i) { a(i++); })()", null);
来自 Android Studio 调试器的堆栈跟踪:
art_sigsegv_fault 0x000000753da02e9c
art::FaultManager::HandleFault(int, siginfo*, void*) 0x000000753da033a4
___lldb_unnamed_symbol24$$app_process64 0x0000005ca3207da8
<unknown> 0x00000075c3f888c0
<unknown> 0x00000074784191e8
<unknown> 0x00000074784191e8
<unknown> 0x00000074784191e8
<unknown> 0x00000074784191e8
<unknown> 0x00000074784191e8
............... the same line 15560 times
<unknown> 0x000000747830be94
<unknown> 0x000000747841937c
<unknown> 0x0000007478339a28
<unknown> 0x000000747831fe30
欢迎提出如何避免这些崩溃的任何想法。
【问题讨论】:
标签: crash chromium v8 android-10.0 javascript-debugger