From 33e2adcec648dbe80f4ea5944749a1155919abba Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Tue, 30 Jan 2024 15:39:33 +0100 Subject: [PATCH] fix: Fix `Unable to retrieve jni environment. Is the thread attached?` errors by using `jni::ThreadScope` (#2457) fix: Add `jni::ThreadScope` to `JVisionCameraScheduler` --- .../frameprocessor/java-bindings/JVisionCameraScheduler.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/android/src/main/cpp/frameprocessor/java-bindings/JVisionCameraScheduler.cpp b/package/android/src/main/cpp/frameprocessor/java-bindings/JVisionCameraScheduler.cpp index ac4b182..bafc534 100644 --- a/package/android/src/main/cpp/frameprocessor/java-bindings/JVisionCameraScheduler.cpp +++ b/package/android/src/main/cpp/frameprocessor/java-bindings/JVisionCameraScheduler.cpp @@ -21,7 +21,9 @@ void JVisionCameraScheduler::dispatchAsync(const std::function& job) { } void JVisionCameraScheduler::scheduleTrigger() { - // 2. schedule `triggerUI` to be called on the java thread + // 2.1 Open a JNI Thread scope because this might be called from a C++ background Thread + jni::ThreadScope scope; + // 2.2 schedule `triggerUI` to be called on the java thread static auto method = _javaPart->getClass()->getMethod("scheduleTrigger"); method(_javaPart.get()); }