Flutterを1.17から1.22 betaにアップグレードする際につまづいたのでメモ。
すごくたくさん警告とかが出て諦めかけていたが、以下の2点だけ対応すれば一応動いた。
Podfileが古いよ問題
Flutter 1.20からPodfileの書き方が変わったらしく、それ以前の書き方だと警告が出る模様。
特に書き換えた覚えがなければ自動で生成されるので、消してしまえばOK。
Firebaseとかパッケージの関係でPodfileを書き換えている場合は、以下を参考に修正する。
参考記事
Warning: Podfile is out of date を解決!|kyklades|note
パッケージのコードでエラー出ちゃう問題
エラーが出たのは以下の2つのパッケージ
- network_to_file_image
- extended_text_field
どちらもIssueが上がっているが、対処し切れていない模様。
暫定対処方法としては、/flutter/.pub-cache/hosted/pub.dartlang.org/network_to_file_image-2.3.5/lib/
配下にあるコードを編集して該当部分を修正する。
今回の2つのパッケージのエラーは、どちらも抽象クラスの関数が実装されていないよというエラーだったので、継承元の抽象クラスを調べて引数の型とかを調べて、空の関数を定義して終わり。
以下はエラーログと見方。(network_to_file_image)
上の_MockHttpClientRequest' is missing implementations for these members: HttpClientRequest.abort
は_MockHttpClientRequest
クラスに継承元のHttpClientRequest
のabort
が定義されていないよと言っている。
下のContext: 'HttpClientRequest.abort' is defined here. void abort([Object? exception, StackTrace? stackTrace]);
// どのファイルのどのクラスで、なんという関数が定義されていないかがわかる // この例では抽象クラスHttpClientRequestのabort関数が定義されていない /flutter/.pub-cache/hosted/pub.dartlang.org/network_to_file_image-2.3.1/lib/network_to_file_image.dart:407:7: Error: The non-abstract class '_MockHttpClientRequest' is missing implementations for these members: - HttpClientRequest.abort Try to either - provide an implementation, - inherit an implementation from a superclass or mixin, - mark the class as abstract, or - provide a 'noSuchMethod' implementation. // 定義しないといけない関数の引き数とかがわかる class _MockHttpClientRequest extends HttpClientRequest { ^^^^^^^^^^^^^^^^^^^^^^ org-dartlang-sdk:///third_party/dart/sdk/lib/_http/http.dart:2045:8: Context: 'HttpClientRequest.abort' is defined here. void abort([Object? exception, StackTrace? stackTrace]);