A/libc: 致命信号11 (SIGSEGV),代码2 (SEGV_ACCERR),故障地址0x708d31bd64,位于tid 22188。

10

大家好,我在 Android 方面的经验不多,但是我被分配了一个任务,却遇到了一些难题。我收到了以下错误提示:

A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x708d31bd64 in tid 22188 

当我试图将我的应用程序安装到运行Android 10Galaxy Note 9上时,出现了这种情况。 我正在使用Android Studio 4.1 R3。 我已经整天在寻找答案,最接近的答案来自https://github.com/facebook/react-native/issues/29517
据我所了解,这个错误仅适用于Android 10及以上版本,并且我需要禁用执行内存保护(XOM)或在某处使用mprotect()。 如https://source.android.com/devices/tech/debug/execute-only-memory#disabling所示,我需要执行以下操作之一:
// Android.mk
LOCAL_XOM := false

// Android.bp
cc_binary { // or other module types
   ...
   xom: false,
}

我的问题是,Android.mkAndroid.bp在哪里?我在我的项目中找不到这两个文件。
If code introspection is necessary on executable code sections, first call mprotect to mark the code readable. Then after the operation is complete, call mprotect again to mark it unreadable.

你如何准确地使用mprotect()?我找不到任何清晰的示例来展示它的用法。


你找到任何解决方案了吗? - Mohammad Misbah
1
我还不能确认实施的解决方案是否已经解决了我的问题(仍在QA测试中),但对我来说,我认为这是因为Android 10在基于Arm64的手机上存在一些问题。我使用的是旧版本的Twilio(3.1.x),我认为这导致了内存错误。它已经升级到6.1.x,所以希望能够解决这个问题。我将在下面发布我发现的内容,以帮助您缩小错误来源的范围。 - Mark
将Twilio 3.1.x更新到6.1.x解决了我的问题。 - Mark
4个回答

5

Android 10似乎存在与基于Arm64架构相关的问题。这会导致某些库出现执行仅限内存违规https://source.android.com/devices/tech/debug/native-crash

您可以使用Android调试器获取崩溃转储来了解更多关于问题根源(导致问题的库)的详细信息。

  1. 在Android设备上导航至设置 > 开发者选项 > 启用USB调试

  2. 通过USB将Android设备连接到计算机

  3. 下载Android SDK平台工具:Android Studio > 工具 > SDK管理器 > Android SDK > SDK工具 > Android SDK平台工具

  4. 如果在Windows上,请导航至 - C:\Users\[user]\AppData\Local\Android\sdk\platform-tools

    如果在Mac上,请导航至/Users/[user]/Library/Android/sdk/platform-tools

  5. 运行应用程序并使其崩溃

  6. 从终端运行:./adb logcat -v threadtime -d > /path_to_random_text_file_for_crash_dump/test.txt

test.txt中应该有更详细的错误信息。

再次强调,我不能确认这是否能帮助您解决问题,但这是对我有帮助的方法。对我来说,问题出在Twilio上,它运行的是旧版本3.1.x而不是更新版本。


1

当我在Android Studio中运行React Native应用程序时,没有在终端中先运行adb reverse tcp:8081 tcp:8081,我遇到了这个问题。这是一个相当随机/晦涩的错误,花了我一些时间才意识到这是问题所在(React Native 0.66.5)。

如果您忘记启动Metro,也会显示类似的错误,例如npx react-native start


0

对我来说,问题出在绑定上下文的类中。

最好避免使用自定义类,以免与其他类混合在一起,让代码变得混乱不堪。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0

我也遇到过这个问题,我正在使用Flutter。当一个插件试图从带有HTML格式的字符串中显示文本并读取不受插件支持的<table>标签时,就会出现错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接