showLicensePage functionでLicensePageを表示しようとするとエラーが出る問題

問題の状況

Flutterで開発中に、DEBUG CONSOLEに以下のようなエラーが表示されました。

'package:flutter/src/foundation/licenses.dart': Failed assertion: line 162 pos 14: 'result.text.trimLeft() == result.text': is not true.

実際の動作としては、LicensePageの一番下の方で、プログレス表示のCircular indicatorが回っている状態になります。
そして、いくつかのPackageが記述されていないようでした。
これでは、LicensePageとしては不完全です。

image

原因

私の場合、pubspec.yamlにflutter_launcher_iconsを記述したことが原因でした。

GitHubにもIssueがありました。
This package causes an error in LicensePage #76

別のPackageでも、同様の問題が発生する場合があるようですね。
LicensePageがFailed assertionする問題

解決方法

  • Packageの修正版のリリースを待つ
  • (実動作に影響がないのであれば) pubspec.yamlから該当Packageの記述をコメントアウトor消す。

これらを解決法といえるのかあやしいですが、わかっていることはこれだけです。

問題再現方法

環境:Flutter 1.9.1+hotfix.2

  • “flutter create .“を実行してFlutter Demoを用意する
  • pubspec.yamlにflutter_launcher_icons: ^0.7.3を追記。
  • showLicensePage関数を実行

これだけで発生を確認できます。

補足:showLicensePage functionについて

FlutterでshowLicensePage functionを呼び出すと、LicensePageを表示することができます。

showLicensePage function
showAboutDialog function

例えばこういう感じでshowLicensePage functionを実行します。

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
        actions: <Widget>[
          IconButton(
            icon: const Icon(
              Icons.more_vert,
            ),
            onPressed: () {
              showLicensePage(context: context);
            },
          ),
        ],
      ),

すると以下のようなLicensePageが表示されます

image

感想

人気のありそうなPackageにも、このような問題が発生するんだなと思いました。
OSSならば自ら率先して修正できたら良かったのですが、力不足。


スポンサーリンク