flutter / flutter/devtools

Layout explorer exception in DevTools

オープン
#8,570 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
layout explorer P2 reproduce to verify screen: inspector
主要言語
Dart
スター
1.7k
フォーク
404
平均マージ
6日 17時間
マージ済み PR(30日)
18

説明

Debugging CupertinoApp on android emulator, mixed usage Theme.of and CupertinoThemeData.of
I was trying something.

```console
[√] Flutter (Channel stable, 2.0.4, on Microsoft Windows [Version 10.0.19042.867], locale bg-BG)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[√] Chrome - develop for the web
[√] Android Studio (version 4.1.0)
[√] VS Code, 64-bit edition (version 1.55.1)
[√] Connected device (2 available)
```
In chrome dev tools I see this exception as soon I click on a widget in the left tree.


logs

```console
main.dart.js:54020 ext.flutter.inspector.getLayoutExplorerNode: (-32000) Server error
'package:flutter/src/foundation/stack_frame.dart': Failed assertion: line 207 pos 12: 'match != null': Expected flutter/devtools#40 Eval..getLayoutExplorerNode. () to match RegExp: pattern=^#(\d+) +(.+) \((.+?):?(\d+){0,1}:?(\d+){0,1}\)$ flags=.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
flutter/devtools#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
flutter/devtools#2 StackFrame.fromStackTraceLine (package:flutter/src/foundation/stack_frame.dart:207:12)
flutter/devtools#3 MappedIterator.moveNext (dart:_internal/iterable.dart:389:20)
flutter/devtools#4 WhereTypeIterator.moveNext (dart:_internal/iterable.dart:866:20)
flutter/devtools#5 new _GrowableList._ofOther (dart:core-patch/growable_array.dart:198:26)
flutter/devtools#6 new _GrowableList.of (dart:core-patch/growable_array.dart:152:26)
flutter/devtools#7 new List.of (dart:core-patch/array_patch.dart:50:28)
flutter/devtools#8 Iterable.toList (dart:core/iterable.dart:366:12)
flutter/devtools#9 StackFrame.fromStackString (package:flutter/src/foundation/stack_frame.dart:95:10)
flutter/devtools#10 FlutterError.defaultStackFilter (package:flutter/src/foundation/assertions.dart:1016:54)
flutter/devtools#11 DiagnosticsStackTrace._applyStackFilter (package:flutter/src/foundation/assertions.dart:1187:43)
flutter/devtools#12 new DiagnosticsStackTrace (package:flutter/src/foundation/assertions.dart:1162:17)
flutter/devtools#13 FlutterErrorDetails.debugFillProperties (package:flutter/src/foundation/assertions.dart:683:22)
flutter/devtools#14 DiagnosticableNode.builder. (package:flutter/src/foundation/diagnostics.dart:2945:17)
flutter/devtools#15 DiagnosticableNode.builder (package:flutter/src/foundation/diagnostics.dart:2948:8)
flutter/devtools#16 _FlutterErrorDetailsNode.builder (package:flutter/src/foundation/assertions.dart:1209:56)
flutter/devtools#17 DiagnosticableNode.emptyBodyDescription (package:flutter/src/foundation/diagnostics.dart:2959:77)
flutter/devtools#18 DiagnosticsNode.toJsonMap. (package:flutter/src/foundation/diagnostics.dart:1578:13)
flutter/devtools#19 DiagnosticsNode.toJsonMap (package:flutter/src/foundation/diagnostics.dart:1607:6)
flutter/devtools#20 WidgetInspectorService._nodeToJson (package:flutter/src/widgets/widget_inspector.dart:1499:18)
flutter/devtools#21 WidgetInspectorService._reportError (package:flutter/src/widgets/widget_inspector.dart:919:44)
flutter/devtools#22 FlutterError.reportError (package:flutter/src/foundation/assertions.dart:1103:15)
flutter/devtools#23 BindingBase.registerServiceExtension. (package:flutter/src/foundation/binding.dart:607:22)

```

I was expecting that I should be able to run a cupertino app in android emulator, as it is just UI, my app doesn't have added native plugins that I'm using.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Chrome DevTools でレイアウトエクスプローラーを開き、左側のツリーにあるウィジェットをクリックして失敗を再現します。まず getLayoutExplorerNode と、package:flutter/src/foundation/stack_frame.dart で言及されているスタックトレース処理から始め、次に関連する assertions.dart と widget_inspector.dart のフレームを調べます。レイアウトエクスプローラーがこの例外を発生させなくなれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
dart
領域
devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
28/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。