react / react/react-native

React Native App Crashes Instantly When Entering Debug Mode when using NativeModules & JNI

Đang mở
#38,310 4 bình luận 2 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Issue: Author Provided Repro Needs: Triage :mag: Newer Patch Available Type: New Architecture
Ngôn ngữ chính
C++
Star
127k
Fork
25.3k
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
4

Mô tả

Description

I've created a small react-native app that uses some custom c++ code and the OpenCV library and works using the JNI and Native Modules. The app works fine however when I try to debug the react native code using the in app developer menu, my app instantly crashes and I get this error in Logcat (Full stack trace in section below):
Logcat Error Message

My custom c++ code only gets called once I hit a button in the app and this crashes out before I even get a chance to press the button, which leads me to believe it's an issue to do with debugging a react-native app when using Custom Modules and JNI.

This happens when I test on both a physical device (Samsung A40) and an emulator (Pixel 3a).

Has anyone encountered an issue like this before or may know what is causing this to happen?

Appreciate any guidance / help on this one.

React Native Version

0.72.0

Output of npx react-native info

System:
OS: Windows 10 10.0.19044
CPU: "(12) x64 AMD Ryzen 5 7600X 6-Core Processor "
Memory: 1.69 GB / 15.15 GB
Binaries:
Node:
version: 18.16.1
path: C:\Program Files\nodejs\node.EXE
Yarn: Not Found
npm:
version: 9.5.1
path: C:\Program Files\nodejs\npm.CMD
Watchman: Not Found
SDKs:
Android SDK: Not Found
Windows SDK: Not Found
IDEs:
Android Studio: AI-222.4459.24.2221.10121639
Visual Studio:
- 17.6.33815.320 (Visual Studio Community 2022)
Languages:
Java: 11.0.19
Ruby: Not Found
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.72.0
wanted: 0.72.0
react-native-windows: Not Found
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: Not found
newArchEnabled: Not found

Steps to reproduce
  1. Create an app that uses Native Modules to call a native method which uses JNI to call a method in c++.
  2. Run the app in debug mode and open the developer menu
  3. Select "Debug" from the developer menu
  4. App instantly crashes
Snack, code example, screenshot, or link to a repository

Link to repository: https://github.com/Matt-Horton/image-processor

23-07-12 10:14:17.986 10985-11040 libc com.imageprocessor A Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 11040 (mqt_js), pid 10985 (.imageprocessor)
2023-07-12 10:14:18.590 11051-11051 DEBUG pid-11051 A Cmdline: com.imageprocessor
2023-07-12 10:14:18.590 11051-11051 DEBUG pid-11051 A pid: 10985, tid: 11040, name: mqt_js >>> com.imageprocessor <<<
2023-07-12 10:14:18.590 11051-11051 DEBUG pid-11051 A #00 pc 000000000003b7f4 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreact_render_runtimescheduler.so (facebook::react::RuntimeSchedulerBinding::createAndInstallIfNeeded(facebook::jsi::Runtime&, std::__ndk1::shared_ptrfacebook::react::RuntimeScheduler const&)+68) (BuildId: 154f261ff589aa1e)
2023-07-12 10:14:18.590 11051-11051 DEBUG pid-11051 A #01 pc 00000000002055e1 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.590 11051-11051 DEBUG pid-11051 A #02 pc 0000000000205591 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.590 11051-11051 DEBUG pid-11051 A #03 pc 0000000000205531 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #04 pc 00000000002054e1 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #05 pc 0000000000204300 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #06 pc 000000000028b3a9 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #07 pc 000000000028ad2c /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (std::__ndk1::function<void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) const+44) (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #08 pc 000000000028ac68 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #09 pc 000000000028ac11 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #10 pc 000000000028abb1 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #11 pc 000000000028ab61 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #12 pc 0000000000289ab0 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #13 pc 00000000002b56b9 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #14 pc 00000000002b5629 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (std::__ndk1::function<void (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*) const+57) (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.591 11051-11051 DEBUG pid-11051 A #15 pc 00000000002b55e6 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #16 pc 00000000002b556c /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #17 pc 00000000002b551c /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #18 pc 00000000002b54ec /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #19 pc 00000000002b43b8 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #20 pc 00000000003e56d1 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libhermes_executor.so (BuildId: 53166c965b19a311)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #21 pc 00000000003e5694 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libhermes_executor.so (std::__ndk1::function<void ()>::operator()() const+20) (BuildId: 53166c965b19a311)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #22 pc 00000000002153c4 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #23 pc 000000000021533c /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #24 pc 00000000002152ec /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #25 pc 00000000002152bc /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.592 11051-11051 DEBUG pid-11051 A #26 pc 0000000000214248 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libreactnativejni.so (BuildId: eedf0b28937d60c0)
2023-07-12 10:14:18.593 11051-11051 DEBUG pid-11051 A #27 pc 0000000000016979 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libfbjni.so (facebook::jni::detail::MethodWrapper<void (facebook::jni::JNativeRunnable::)(), &(facebook::jni::JNativeRunnable::run()), facebook::jni::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::jni::JNativeRunnable, facebook::jni::JRunnable>::JavaPart, facebook::jni::JRunnable, void>::_javaobject>)+25) (BuildId: 24c51b71e72aa958d98c6f3c2304d6447e26c99e)
2023-07-12 10:14:18.593 11051-11051 DEBUG pid-11051 A #28 pc 00000000000168f4 /data/app/~~iVVShjhaWAgH81QQf8xjPQ==/com.imageprocessor-JBViIjDg9OhWp4uwtsY-7Q==/lib/x86_64/libfbjni.so (facebook::jni::detail::FunctionWrapper<void ()(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::jni::JNativeRunnable, facebook::jni::JRunnable>::JavaPart, facebook::jni::JRunnable, void>::_javaobject>), facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::jni::JNativeRunnable, facebook::jni::JRunnable>::JavaPart, facebook::jni::JRunnable, void>::_javaobject*, void>::call(_JNIEnv*, _jobject*, void ()(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::jni::JNativeRunnable, facebook::jni::JRunnable>::JavaPart, facebook::jni::JRunnable, void>::_javaobject>))+52) (BuildId: 24c51b71e72aa958d98c6f3c2304d6447e26c99e)
---------------------------- PROCESS ENDED (10985) for package com.imageprocessor ----------------------------

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện sự cố crash trong repository image-processor được liên kết với React Native 0.72.0, sử dụng hành động Debug trong menu dành cho nhà phát triển và ghi lại Logcat. Kiểm tra Native Modules và đường dẫn JNI cùng với stack frame RuntimeSchedulerBinding. Công việc được xem là hoàn tất khi đã xác định được nguyên nhân và xác nhận rằng việc vào chế độ debug không còn gây crash trên các thiết lập thiết bị và trình giả lập được báo cáo.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
android, cpp, react-native
Lĩnh vực
computer-vision, mobile-dev
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
30/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.