小编Kat*_* Jo的帖子

Flutter:没有声明顶级 getter 'onStart'

我修改了包中给出的示例代码flutter_background_service: ^2.4.5来获取BuildContext。从那时起,我收到此错误消息

[ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: NoSuchMethodError: No top-level getter 'onStart' declared.
E/flutter (26872): Receiver: top-level
E/flutter (26872): Tried calling: onStart
E/flutter (26872): #0      NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:216:5)
E/flutter (26872): #1      _getCallbackFromHandle (dart:ui/natives.dart:94:76)
E/flutter (26872): #2      PluginUtilities.getCallbackFromHandle.<anonymous closure> (dart:ui/plugins.dart:82:23)
E/flutter (26872): #3      _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:524:23)
E/flutter (26872): #4      PluginUtilities.getCallbackFromHandle (dart:ui/plugins.dart:81:27)
E/flutter (26872): #5      _entrypoint (package:flutter_background_service_android/flutter_background_service_android.dart:13:35)
E/flutter (26872): <asynchronous suspension>
Run Code Online (Sandbox Code Playgroud)

我猜是因为我改变了onStart方法的结构?但我确实需要访问 BuildContext,所以我不知道如何解决这个错误。

我的代码:

[ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: NoSuchMethodError: No top-level getter 'onStart' declared.
E/flutter (26872): Receiver: top-level
E/flutter (26872): Tried calling: onStart
E/flutter (26872): …
Run Code Online (Sandbox Code Playgroud)

onstart background-service flutter

4
推荐指数
1
解决办法
2330
查看次数

Flutter:为什么没有捕获异常?

我想在发生错误时显示小吃栏。异常正在运行,但未在 main.dart 中捕获。你能看出问题是什么吗?我是 Flutter 新手,所以可能不太好。谢谢。

主程序.dart

Future<void> _signInWithPhoneNumber() async {
    try {
      postPhoneInfo(
          tokenValue,
          _packageInfo.appName,
          _packageInfo.version,
          Theme.of(context).platform.toString().substring(15),
          "phone number");
      print("debug : try");
    } catch (e) {
      print("debug : catch");
      // print(e);
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("${e.toString()}")));
    }
  }
Run Code Online (Sandbox Code Playgroud)

这是 postPhoneInfo()

Future<phoneInfo> postPhoneInfo(String token, String appName, String appVersion,
    String platform, String phone) async {
  var queryParameters = {
    'param1': token,
    'param2': appName,
    'param3': appVersion,
    'param4': platform,
    'param5': phone
  };
  var uri =
      Uri.http('~~', '~~', queryParameters);
  final response = await http.post(uri, headers: <String, String>{
    'Content-Type': …
Run Code Online (Sandbox Code Playgroud)

error-handling exception try-catch dart flutter

2
推荐指数
1
解决办法
1634
查看次数