[Flutter][Tips][6] Command PhaseScriptExecution failed with a nonzero exit code のの解決方法

どうも、すえきあおいです。Flutterで2Dゲームアプリを作り始めたのですが、早速エラーでハマりました。

経緯やその後の進捗を知りたい方は以下の記事をご参照ください。

へっぽこSEが◯時間でFlutter(iOS、android、web)で2Dゲームアプリを作ってみる(1)

へっぽこSEが◯時間でFlutter(iOS、android、web)で2Dゲームアプリを作ってみる(2)

 

エラー内容:Command PhaseScriptExecution failed with a nonzero exit code

../../.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:88:26: Error: Type 'DiagnosticableMixin' not found.
class PictureStream with DiagnosticableMixin {
                         ^^^^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:192:44: Error: Type 'DiagnosticableMixin' not found.
abstract class PictureStreamCompleter with DiagnosticableMixin {
                                           ^^^^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:88:7: Error: The type 'DiagnosticableMixin' can't be mixed in.
class PictureStream with DiagnosticableMixin {
      ^
../../.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:192:16: Error: The type 'DiagnosticableMixin' can't be mixed in.
abstract class PictureStreamCompleter with DiagnosticableMixin {
               ^
../../.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:167:11: Error: Superclass has no method named 'debugFillProperties'.
    super.debugFillProperties(properties);
          ^^^^^^^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:171:30: Error: The method 'toStringShort' isn't defined for the class 'PictureStreamCompleter'.
 - 'PictureStreamCompleter' is from 'package:flutter_svg/src/picture_stream.dart' ('../../.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart').
Try correcting the name to the name of an existing method, or defining a method named 'toStringShort'.
      ifPresent: _completer?.toStringShort(),
                             ^^^^^^^^^^^^^
../../.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.17.4/lib/src/picture_stream.dart:266:11: Error: Superclass has no method named 'debugFillProperties'.
    super.debugFillProperties(description);
          ^^^^^^^^^^^^^^^^^^^

Command PhaseScriptExecution failed with a nonzero exit code

 

解決方法:flutter_svgのバージョンアップ

調べたところ、

flutter_svg: ^0.18.0

にバージョンアップせよ、とのことらしい。

おなじみ、pubspec.yaml の 「dependencies:」に追記してPub getしてみた。。。

Because flutter_game02 depends on flame ^0.22.1 which depends on flutter_svg ^0.17.4, flutter_svg ^0.17.4 is required.
So, because flutter_game02 depends on flutter_svg ^0.18.0, version solving failed.
pub get failed (1; So, because flutter_game02 depends on flutter_svg ^0.18.0, version solving failed.)
Process finished with exit code 1

あかんやん!!!

flameはflutter_svg ^0.17.4に依存してるから、バージョンアップしたら今度はflameが動かなくなるという罠。あっちが立てばこっちが立たず。

コレはどうしようもないので、諦めました。きっと時間が解決してくれるけど、そんなん待ってられないので別の方法を見つけに旅に出ます。(探さないでください…

ふぅ。

 

結論

Flameとflutter_svgのように依存関係があると、片方だけアップグレードするというのができない。

こういうことって結構ありますね。パッケージは便利だけど、こういうことがあるから怖いですねー無闇にアップデートしまくると動かなくったりwww

でも、このエラーに関しては、他のライブラリと依存関係ないならflutter_svgのバージョンを^0.18.0にアップデートすればで解決するみたい。

 

 

ま、最初はこんなもんですよね。でも動き始めたら早いから!とっても楽しいから!

最初だけですよ辛いのは。

それでは!

末岐 碧衣
  • 末岐 碧衣
  • フリーランス のシステムエンジニア。独立後、一度も営業せずに月収 96 万円を達成。1986年大阪生まれ。早稲田大学理工学部卒。システムエンジニア歴 12年。
    2009年、ITコンサルティング企業に入社。3年目でコミュ障が爆発し人間関係が崩壊。うつにより休職するも、復帰後はコミュ障の自覚を持ち、「チームプレイ」を徹底的に避け、会社組織内においても「一人でできる仕事」に専念。社内外から評価を得た。
    無理に「チームプレイ」するよりも「一人でできる仕事」に専念した方が自分も周囲も幸せにできることを確信し、2015年フリーランスとして独立。