From eb35fb9c4aa04e5c92939db80bf5735a0c8f8d9b Mon Sep 17 00:00:00 2001 From: Inakitajes Date: Sun, 30 Nov 2025 11:34:44 +0000 Subject: [PATCH 1/2] fix: try-catch was useless since it didnt specified UnsatisfiedLinkError --- .../fluttergl/flutter_angle/FlutterAnglePlugin.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/flutter_angle/android/src/main/java/org/fluttergl/flutter_angle/FlutterAnglePlugin.java b/flutter_angle/android/src/main/java/org/fluttergl/flutter_angle/FlutterAnglePlugin.java index 3f4829b..b2df133 100644 --- a/flutter_angle/android/src/main/java/org/fluttergl/flutter_angle/FlutterAnglePlugin.java +++ b/flutter_angle/android/src/main/java/org/fluttergl/flutter_angle/FlutterAnglePlugin.java @@ -356,13 +356,11 @@ public void onDetachedFromEngine(@NonNull FlutterPlugin.FlutterPluginBinding bin } flutterTextureMap.clear(); - try { - // Deinitialize native ANGLE resources - deinit(); - } - catch (Exception e) { - Log.e(TAG, "Error deinitializing native ANGLE resources", e); - } +try { + deinit(); +} catch (UnsatisfiedLinkError e) { + Log.e(TAG, "Native method deinit() not linked correctly", e); +} } // --- Native methods (used for ANGLE calls) --- From 1112bffc447261b4c8ab8041e1cc17217d2c76bc Mon Sep 17 00:00:00 2001 From: Inakitajes Date: Sun, 30 Nov 2025 11:37:39 +0000 Subject: [PATCH 2/2] fix: added defensive approach for crashes on deinit --- .../flutter_angle/FlutterAnglePlugin.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/flutter_angle/android/src/main/java/org/fluttergl/flutter_angle/FlutterAnglePlugin.java b/flutter_angle/android/src/main/java/org/fluttergl/flutter_angle/FlutterAnglePlugin.java index b2df133..ed3541b 100644 --- a/flutter_angle/android/src/main/java/org/fluttergl/flutter_angle/FlutterAnglePlugin.java +++ b/flutter_angle/android/src/main/java/org/fluttergl/flutter_angle/FlutterAnglePlugin.java @@ -356,11 +356,16 @@ public void onDetachedFromEngine(@NonNull FlutterPlugin.FlutterPluginBinding bin } flutterTextureMap.clear(); -try { - deinit(); -} catch (UnsatisfiedLinkError e) { - Log.e(TAG, "Native method deinit() not linked correctly", e); -} + try { + // Deinitialize native ANGLE resources + deinit(); + } + catch (UnsatisfiedLinkError e) { + Log.e(TAG, "Error deinitializing native ANGLE resources", e); + } + catch (Throwable t) { + Log.e(TAG, "General exception in deinit()", t); + } } // --- Native methods (used for ANGLE calls) ---