LicensePageがFailed assertionする問題

2019/08/27

FlutterにはLicensePageというライセンス一覧を自動で表示してくれるWidgetがあります。

こいつがエラーを吐く問題に直面しました。

Failed assertion: line 158: ‘result.text.trimLeft() == result.text’: is not true.

事象としては以下のチケットと一緒。どうやらライセンスのフォーマットを割と厳密に見ていて、想定から外れたらassertionでNGにしている様子。もっと緩くていいのに…

エラーメッセージからはどのライブラリが犯人なのか分からないのでひとつひとつ調べていく必要があります。うまいやり方が思いつかず、licenses.dart にブレークポイントを張ってデバッグ実行するという泥臭い手段に頼ることに…

結果、imageが犯人でした。「ShowAboutDialog & License – Assertion Fail · Issue #133 · brendan-duncan/image」で報告されている問題ですね。

自分の場合はimageを直接使っていたわけじゃなくて、flutter_launcher_iconsの依存関係に含まれていたパターン。

この問題、基本的にはライブラリ側でライセンスを修正したバージョンをリリースしてもらうしかなさそうなので、暫定処置として flutter_launcher_icons の利用を一時見送ることに。そのうち image が更新されたら復活させようかと思っています。

ちなみに、pubspec.yaml を更新した後に flutter clean しないとエラー解消しないっぽいです。これに気が付かなくてしばしハマってしまいました…




関連(するかもしれない)記事


おススメ