我修改了包中给出的示例代码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) 我想在发生错误时显示小吃栏。异常正在运行,但未在 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)