diff --git a/agconnect_crash/CHANGELOG.md b/agconnect_crash/CHANGELOG.md index 4e73667..9b07e06 100644 --- a/agconnect_crash/CHANGELOG.md +++ b/agconnect_crash/CHANGELOG.md @@ -1,3 +1,8 @@ +## 1.9.1+301 + +- Removed deprecated Android v1 embedding (`PluginRegistry.Registrar`) for Flutter 3.29+ compatibility. +- Made `recordError` accept nullable `StackTrace` with fallback to `StackTrace.current`. + ## 1.9.0+300 - **[Breaking Changes]** diff --git a/agconnect_crash/android/src/main/java/com/huawei/agconnectcrash/AGConnectCrashPlugin.java b/agconnect_crash/android/src/main/java/com/huawei/agconnectcrash/AGConnectCrashPlugin.java index 83f511d..35872a3 100644 --- a/agconnect_crash/android/src/main/java/com/huawei/agconnectcrash/AGConnectCrashPlugin.java +++ b/agconnect_crash/android/src/main/java/com/huawei/agconnectcrash/AGConnectCrashPlugin.java @@ -33,7 +33,6 @@ import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.Result; -import io.flutter.plugin.common.PluginRegistry.Registrar; public class AGConnectCrashPlugin implements FlutterPlugin, MethodCallHandler { private MethodChannel channel; @@ -45,12 +44,6 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBindin channel.setMethodCallHandler(this); } - public static void registerWith(Registrar registrar) { - initAGConnectSDK(registrar.context().getApplicationContext()); - final MethodChannel channel = new MethodChannel(registrar.messenger(), "com.huawei.flutter/agconnect_crash"); - channel.setMethodCallHandler(new AGConnectCrashPlugin()); - } - static void initAGConnectSDK(Context context) { if (AGConnectInstance.getInstance() == null) { AGConnectInstance.initialize(context); diff --git a/agconnect_crash/lib/src/agconnect_crash.dart b/agconnect_crash/lib/src/agconnect_crash.dart index d65a5e7..e5d8235 100644 --- a/agconnect_crash/lib/src/agconnect_crash.dart +++ b/agconnect_crash/lib/src/agconnect_crash.dart @@ -52,7 +52,7 @@ class AGCCrash { /// ``` Future onFlutterError(FlutterErrorDetails details) async { FlutterError.dumpErrorToConsole(details, forceReport: true); - recordError(details.exceptionAsString(), details.stack!); + await recordError(details.exception, details.stack); } ///Call the onFlutterError and recordError methods in the main function to @@ -75,8 +75,12 @@ class AGCCrash { /// AGCCrash.instance.recordError(error, stackTrace, true); ///} /// ``` - Future recordError(dynamic exception, StackTrace stack, - {bool fatal = false}) async { + Future recordError( + dynamic exception, + StackTrace? stack, { + bool fatal = false, + }) async { + stack ??= StackTrace.current; debugPrint( 'Error caught by AGCCrash : ${exception.toString()} \n${stack.toString()}'); await _channel.invokeMethod('recordError', { diff --git a/agconnect_crash/pubspec.yaml b/agconnect_crash/pubspec.yaml index 779fd00..7dec710 100644 --- a/agconnect_crash/pubspec.yaml +++ b/agconnect_crash/pubspec.yaml @@ -1,6 +1,6 @@ name: agconnect_crash description: Flutter plugin for AppGallery Connect Crash SDK. -version: 1.9.0+300 +version: 1.9.1+301 homepage: https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-crash-introduction environment: