반응형
올해 초에 만들었던 플러터 프로젝트를 다시 빌드하다 보니 다음과 같은 경고메시지가 떴다. 동작은 했지만, 우찌 없앨지 고민했다.
/D:/DEV_FLUTTER/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_math_fork-0.5.0/lib/src/widgets/selectable.dart:459:24: Warning: Operand of null-aware operation '!' has
type 'SchedulerBinding' which excludes null.
- 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('/D:/DEV_FLUTTER/flutter/packages/flutter/lib/src/scheduler/binding.dart').
SchedulerBinding.instance!.addPostFrameCallback((_) {
^
/D:/DEV_FLUTTER/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_math_fork-0.5.0/lib/src/widgets/selection/web_selection_manager.dart:119:24: Warning: Operand of
null-aware operation '!' has type 'SchedulerBinding' which excludes null.
- 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('/D:/DEV_FLUTTER/flutter/packages/flutter/lib/src/scheduler/binding.dart').
SchedulerBinding.instance!
^
/D:/DEV_FLUTTER/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_math_fork-0.5.0/lib/src/widgets/selection/overlay_manager.dart:138:28: Warning: Operand of null-aware
operation '!' has type 'SchedulerBinding' which excludes null.
- 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('/D:/DEV_FLUTTER/flutter/packages/flutter/lib/src/scheduler/binding.dart').
if (SchedulerBinding.instance!.schedulerPhase ==
^
에러는 내 코드에서 발생하는 것은 아니고, 사용하는 라이브러리 종속성으로 깔린 어떤 라이브러리에서 코드 안에서 발생하는 것이다.
pubspec.yaml 파일 안에 사용하는 라이브러리들과 필요한 버전정보등을 적도록 되어 있는데, 어떤 라이브러리의 버전을 올려줘야 할까? 그냥 막 수동으로 고치다 보니 컴파일 에러가 발생하기도 했다. 그래서 결국 해결책이 된 방법은. flutter pub upgrade --null-safety 명령을 사용한 것.
C:\WORK\myflutterproj>flutter pub upgrade --null-safety
Resolving dependencies...
async 2.8.2 (2.9.0 available)
boolean_selector 2.1.0
characters 1.2.0 (1.2.1 available)
charcode 1.3.1
clock 1.1.0 (1.1.1 available)
collection 1.16.0
> csslib 0.17.2 (was 0.17.1)
> cupertino_icons 1.0.5 (was 1.0.4)
fake_async 1.3.0 (1.3.1 available)
flutter 0.0.0 from sdk flutter
> flutter_html 3.0.0-alpha.5 (was 2.2.1)
flutter_lints 2.0.1
flutter_test 0.0.0 from sdk flutter
html 0.15.0
...
...
...
Changed 4 constraints in pubspec.yaml:
http: any -> ^0.13.5
xml2json: any -> ^5.3.4
flutter_html: any -> ^3.0.0-alpha.5
cupertino_icons: ^1.0.2 -> ^1.0.5
현재의 pubspec.yaml 로 찾아지는 라이브러리들을 쭉 찾고, 그 중에서 null-safety 를 지원하지 않는 라이브러리가 없도록, pubspec.yaml 에 지정된 라이브러리 버전을 설정해 준다. 제일 아래에 나온 4가지가 결국 yaml 파일에서 바뀐 것.
해당 명령을 실행하고, pubspec.yaml 파일에 변경이 일어났고. 이후에 다시 flutter run 을 해 보니, 경고가 사라졌다.
728x90
'프로그래밍 > 미분류' 카테고리의 다른 글
[RUST] rusqlite, LNK1181: cannot open input file 'sqlite3.lib' (0) | 2024.01.03 |
---|---|
First chance exception 0X406D1388 (0) | 2023.12.22 |
powershell 이 시스템에서 스크립트를 실행할 수 없으므로 Microsoft.PowerShell_profile.ps1 파일을 로드할 수 없습니다. (0) | 2022.08.06 |
인코딩을 들여다보자 (0) | 2022.07.13 |
signal 링크 (0) | 2022.06.10 |