본문 바로가기
Flutter

Flutter[플러터(고급)] Flutter Performance - Widget rebuild stats

by s_hoonee 2024. 10. 24.
반응형
======== Exception caught by Flutter framework =====================================================
The following _TypeError was thrown during a service extension callback for "ext.flutter.inspector.getRootWidgetSummaryTree":
Null check operator used on a null value

When the exception was thrown, this was the stack: 
#0      WidgetInspectorService._registerObjectGroupServiceExtension.<anonymous closure> (package:flutter/src/widgets/widget_inspector.dart:866:84)
#1      BindingBase.registerServiceExtension.<anonymous closure> (package:flutter/src/foundation/binding.dart:944:32)
<asynchronous suspension>
#2      _runExtension.<anonymous closure> (dart:developer-patch/developer.dart:112:11)
<asynchronous suspension>

 

원인 

Flutter DevTools의 Widget Inspector에서 ext.flutter.inspector.getRootWidgetSummaryTree라는 서비스 확장을 호출하는 도중에 null 값을 참조하려고 할 때 발생했다고 나옴. 


'null check operator' -> 해당 코드는 널 체크 연산자(!)를 사용하여, 널 값일 가능성이 있는 객체에 널 체크를 하지 않고 강제로 접근하려다가 오류가 발생했을 경우가 높음 해당 페이지에서 (!) 연산자 코드를 찾아서 해결해보자. 우선적으로 stackoverflow에서 빠르게 해결하는 메세지를 찾을 수 있었다. 하지만 각 각의 프로젝트마다 상황이 다르니 본인의 프로젝트에서의 근본적인 원인이 버전 이슈인지 (!) 연산자 이슈인지는 꼭 파악하고 아래 해결법을 시도하길 바란다.

 

DevTools > Performance 탭 > Track widget rebuilds 옵션을 끄자 (Performance 탭에서 우측 위 'Enhance Tracing' 팝업을 열어서 첫 번째 항목을 핸들링하면 됩니다.