syncfusion / flutter-widgets

Syncfusion Flutter widgets libraries include high quality UI widgets and file-format packages to help you create rich, high-quality applications for iOS, Android, and web from a single code base.
1.58k stars 773 forks source link

Last Flutter update error #645

Closed aliemrenebiler closed 2 years ago

aliemrenebiler commented 2 years ago

This last update of Flutter has some changes about null values.

I have this error for circular_base.dart file and many more files in syncfusion_flutter_charts package: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.

The warnings are always about the same code lines:

SchedulerBinding.instance!.addPostFrameCallback((_) {
  _validateStateMaintenance(_stateProperties, tooltipPoint);
});

They want it as 'instance', not 'instance!' or 'instance?'.

ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_charts-19.4.56/lib/src/chart/base/chart_base.dart:1792:26](): Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/chart_base.dart:1792
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:         SchedulerBinding.instance!.addPostFrameCallback((_) {
ERROR:                          ^
ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_charts-19.4.56/lib/src/chart/base/chart_base.dart:1801:28](): Warning: Operand of null-aware operation '?.' has type 'SchedulerBinding' which excludes null.
../…/base/chart_base.dart:1801
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:           SchedulerBinding.instance?.addPostFrameCallback((_) => _refresh());
ERROR:                            ^
ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_charts-19.4.56/lib/src/circular_chart/base/circular_base.dart:947:26](): Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/circular_base.dart:947
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:         SchedulerBinding.instance!.addPostFrameCallback((_) {
ERROR:                          ^
ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_charts-19.4.56/lib/src/circular_chart/base/circular_base.dart:961:28](): Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/circular_base.dart:961
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:           SchedulerBinding.instance!.addPostFrameCallback((_) => _refresh());
ERROR:                            ^

ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_charts-19.4.56/lib/src/funnel_chart/base/funnel_base.dart:719:26](): Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/funnel_base.dart:719
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:         SchedulerBinding.instance!.addPostFrameCallback((_) {
ERROR:                          ^
ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_charts-19.4.56/lib/src/funnel_chart/base/funnel_base.dart:731:28](): Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/funnel_base.dart:731
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:           SchedulerBinding.instance!.addPostFrameCallback((_) => _refresh());
ERROR:                            ^
ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_charts-19.4.56/lib/src/pyramid_chart/base/pyramid_base.dart:712:26](): Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/pyramid_base.dart:712
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:         SchedulerBinding.instance!.addPostFrameCallback((_) {
ERROR:                          ^
ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_charts-19.4.56/lib/src/pyramid_chart/base/pyramid_base.dart:723:28](): Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/pyramid_base.dart:723
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:           SchedulerBinding.instance!.addPostFrameCallback((_) => _refresh());
ERROR:                            ^
ERROR: .[./../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/syncfusion_flutter_core-19.4.56/lib/src/legend/legend.dart:548:30](): Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/legend/legend.dart:548
ERROR:  - 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
ERROR:             SchedulerBinding.instance!.addPostFrameCallback(
ERROR:                              ^

: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/chart_base.dart:1792
- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
        SchedulerBinding.instance!.addPostFrameCallback((_) {
                         ^
: Warning: Operand of null-aware operation '?.' has type 'SchedulerBinding' which excludes null.
../…/base/chart_base.dart:1801
- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
          SchedulerBinding.instance?.addPostFrameCallback((_) => _refresh());

                           ^
: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/pyramid_base.dart:712
- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
        SchedulerBinding.instance!.addPostFrameCallback((_) {
                         ^
: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/pyramid_base.dart:723
- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
          SchedulerBinding.instance!.addPostFrameCallback((_) => _refresh());
                           ^
: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/funnel_base.dart:719
- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
        SchedulerBinding.instance!.addPostFrameCallback((_) {
                         ^
: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/funnel_base.dart:731

- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
          SchedulerBinding.instance!.addPostFrameCallback((_) => _refresh());
                           ^
: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/circular_base.dart:947
- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
        SchedulerBinding.instance!.addPostFrameCallback((_) {
                         ^
: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/base/circular_base.dart:961
- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
          SchedulerBinding.instance!.addPostFrameCallback((_) => _refresh());
                           ^
: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null.
../…/legend/legend.dart:548
- 'SchedulerBinding' is from 'package:flutter[/src/scheduler/binding.dart]()' ('.[./../../snap/flutter/common/flutter/packages/flutter/lib/src/scheduler/binding.dart]()').
package:flutter/…/scheduler/binding.dart:1
            SchedulerBinding.instance!.addPostFrameCallback(
                             ^
Yuvaraj-Gajaraj commented 2 years ago

Hi @aliemrenebiler,

We have checked with the latest version of Flutter SDK and the reported scenario was reproduced at our end. We have ensured the user interactions and other cases with circular charts and chart was working fine as expected. Since the scenario was replicated and we are not aware of your exact scenario, we request you to provide the following information, • what are properties have you used for the chart widget in your project. • The exact scenarios in which the issue got replicated i.e changing the orientation of the device while showing the tooltip, etc. These are more helpful to us to provide a solution sooner. We have also attached a sample for your reference which is used in the testing phase, if possible, kindly try to replicate it with this sample and revert us.

Sample: i372926.zip

Thanks, Yuvaraj.

aliemrenebiler commented 2 years ago

Hi @Yuvaraj-Gajaraj

This error just shows up at the beginning. But the app can still be used. During usage, no such error appears again. I made the app for Linux, used syncfusion_flutter_charts: ^19.4.56 as the package.

I didn't have this problem before the last Flutter update.

I copied the chart codes so you can investigate.

chart_code_1.txt chart_code_2.txt chart_code_3.txt chart_code_4.txt chart_code_5.txt

aliemrenebiler commented 2 years ago

@Yuvaraj-Gajaraj is there any update about this problem? I still have the same problem

aaronjudd commented 2 years ago

I was able to replicate this same error using the Syncfusion Chart Example without any other modifications.

cc-nogueira commented 2 years ago

These are warning messages we get from Flutter 3 since SchedulerBinding.instance no longer returns a nullable value.

As a reference, flutter_slidable had the same warning until yesterday's release when they added the following fix. Note that the lint instruction "// ignore: unnecessary_nullable_for_final_variable_declarations" is required to clear lint warnings on your development environment.

Fix supporting Flutter 3 and Flutter 2: // In Flutter 3, [SchedulerBinding.instance] is not nullable, but since // we want to support Flutter 2, this is a simple way to do it without // having a build warning. // ignore: unnecessary_nullable_for_final_variable_declarations final SchedulerBinding? schedulerBinding = SchedulerBinding.instance;

Then use this local schedulerBinding where you used to access SchedulerBinding.instance, keeping ! or ? operands.

-- Ricardo

aliemrenebiler commented 2 years ago

Yes! Last update was fixed everything.