【Flutter】Operand of null-aware operation ‘!’ has type ‘GestureBinding’ which excludes null.の警告

問題点

Flutter 3.0にアップデートしたら、以下のような警告が大量に発生するようになった。

/c:/flutter/.pub-cache/hosted/pub.dartlang.org/macos_ui-1.3.0/lib/src/labels/tooltip.dart:241:20: Warning: Operand of null-aware operation '!' has type 'GestureBinding' which excludes null.
 - 'GestureBinding' is from 'package:flutter/src/gestures/binding.dart' ('/c:/flutter/packages/flutter/lib/src/gestures/binding.dart').
    GestureBinding.instance!.pointerRouter

解決策

解決を待つ。もしくは、Flutter2に戻す。
自分でもBindingを使っている箇所があるから、そこは修正しないと。

後記:
パッケージの開発者様が解決してくださっている。以下のコマンドを実施すると、パッケージが新しくなり、解決している分については警告が出なくなる。

flutter pub outdated
flutter pub upgrade
flutter pub get

解説

Flutter: Warning: Operand of null-aware operation ‘!’ has type ‘WidgetsBinding’ which excludes null. when upgrading to flutter 3.0.0
に以下のようにあります。パッケージの開発者、がんばって、とのこと。

この警告を無視して、これらのパッケージの作者が flutter 3 の新しい変更に対応し、問題を解決するまで待つことができるようになりました。開発者は現在これらの変更に対応しており、影響を受けるパッケージの新バージョンが間もなくリリースされるはずです。

理由

気になったので、ソースを読んでみました。

static SchedulerBinding get instance => BindingBase.checkInstance(_instance);

以前はBinding関連のinstanceがNULL許容型だったが、Flutter 3.0から許容しなくなったせいだと思われる。