大家好,我在 Android 方面的经验不多,但是我被分配了一个任务,却遇到了一些难题。我收到了以下错误提示:
A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x708d31bd64 in tid 22188
当我试图将我的应用程序安装到运行
Android 10
的Galaxy 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.mk
和Android.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()
?我找不到任何清晰的示例来展示它的用法。