微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter 未处理异常:对空值使用空检查运算符

如何解决Flutter 未处理异常:对空值使用空检查运算符

我收到以下错误 Unhandled Exception: Null check operator,我不确定我的代码或我使用的库是否有问题。我正在尝试测试 back4app 使用的 parse_server_sdk 的 livequery,因为我需要实时发送和接收图像。相关代码如下:

 import 'dart:io';
import 'package:filepicker_windows/filepicker_windows.dart';
import 'package:Flutter/material.dart';
import 'package:parse_server_sdk_Flutter/parse_server_sdk.dart';

    void main() async {
      final keyApplicationId = 'EPARW6nRAAyp5uehoDE7rBEby4wtehcZf9EayykS';
      final keyClientKey = 'fDaL2DjyC9YdwCwZ4RB5c5vhACROaMOO1EjjL4Zn';
      final keyParseServerUrl = 'https://parseapi.back4app.com';
      final LIVE_QUERY_URL = 'wss://samuraichat.b4a.io';
    
      await Parse().initialize(keyApplicationId,keyParseServerUrl,clientKey: keyClientKey,autoSendSessionId: true,liveQueryUrl: LIVE_QUERY_URL,coreStore: CoreStoreMemoryImp());
    
      final LiveQuery liveQuery = LiveQuery();
    
      QueryBuilder<ParSEObject> query =
          QueryBuilder<ParSEObject>(ParSEObject('FirstClass'))
            ..whereEqualTo('chatId',1);
    
      Subscription subscription = await liveQuery.client.subscribe(query);
    
      subscription.on(LiveQueryEvent.create,(value) {
        print('*** CREATE ***: ${DateTime.Now().toString()}\n $value ');
        print((value as ParSEObject).objectId);
        print((value as ParSEObject).get('message'));
      });
    
      runApp(MyApp());
    }

这是错误堆栈:

[ERROR:Flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Null check operator used on a null value
#0      MethodChannel.binaryMessenger (package:Flutter/src/services/platform_channel.dart:142:86)
#1      MethodChannel._invokeMethod (package:Flutter/src/services/platform_channel.dart:148:36)
#2      MethodChannel.invokeMethod (package:Flutter/src/services/platform_channel.dart:331:12)
#3      MethodChannelConnectivity.checkConnectivity (package:connectivity_platform_interface/src/method_channel_connectivity.dart:41:29)
#4      Connectivity.checkConnectivity (package:connectivity/connectivity.dart:46:22)
#5      Parse.checkConnectivity (package:parse_server_sdk_Flutter/parse_server_sdk.dart:106:34)
#6      new LiveQueryReconnectingController (package:parse_server_sdk/src/network/parse_live_query.dart:45:28)
#7      new LiveQueryClient._internal (package:parse_server_sdk/src/network/parse_live_query.dart:146:30)
#8      LiveQueryClient._getInstance (package:parse_server_sdk/src/network/parse_live_query.dart:153:35)
#9      new LiveQuery (package:parse_server_sdk/src/network/parse_live_query.dart:416:30)
#10     main (package:chat_app/main.dart:18:37)
<asynchronous suspension>

谢谢。

解决方法

这个错误应该用 this PR 修复。

您通过覆盖 pubspec.yaml 中的依赖项来使用当前的 nullsafety 分支:

dependency_overrides:
  parse_server_sdk_flutter:
    git:
      url: https://github.com/parse-community/Parse-SDK-Flutter.git
      ref: nullsafety
      path: packages/flutter
  parse_server_sdk:
    git:
      url: https://github.com/parse-community/Parse-SDK-Flutter.git
      ref: nullsafety
      path: packages/dart
,

尝试清理您的应用缓存:

flutter clean

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。