Flutter3.0及びAndroid Studio「Chipmunk」へのアップグレード時の注意点(まとめ:動画なし)

このページには広告が含まれる場合があります。

 

2022年5月に、Flutterアプリを作るための開発ツールである「Android Studio」がバージョン「Chipmunk」に

 

また、FlutterのSDKが3.0にアップデートされましたが、

現時点(2022/5/13)では、アップデート適用時にいくつか留意すべき点がありますので注意が必要です。

 

すでに作ったプロジェクトを開こうとすると「Trust and Open Project?」と聞かれる

Android Studio Chipmunkで、すでに作成したプロジェクトを開こうとすると

「Trust and Open Project?」

と題するダイアログが表示されて、開いても大丈夫かどうか聞かれることがありますので、

  • 今開こうとしているプロジェクトのあるフォルダ内のプロジェクトがすべて信頼出来る場合は「Trust projects in・・・」にチェックを入れて、
  • 今開こうとしているプロジェクトだけを信頼する場合は「Trust Project」ボタンのみを押して

プロジェクトを開いて下さい(「Trust Project」ボタンは「Trust projects in・・・」にチェックを入れている場合でも要押下)。

 

アップグレード前のFlutterSDKで作ったプロジェクトをビルドする前にやっておいた方がよさそうなこと

アップグレード前のFlutterのSDK(バージョン2.10.5以下)で作ったプロジェクトをそのままビルドすると、ビルドエラーが発生する可能性があるので、ビルド前に以下の作業を行って頂くと発生頻度が低くなると思います。

全プラットフォーム共通

1)pubspec.lockファイルの削除

 

2)Android StudioのTerminalから「flutter clean」

3)「pub get」

 

iOSのみ(Macのみ)

4)Podfile.lockファイルの削除

5)Android StudioのTerminalから「ios」フォルダに移動 => 「pod repo update」

 

(これらをやっておくと、以下でご紹介しているトラップは発生頻度が低くなると思います)

 

「Error: Member not found: ‘UnicodeChar’.」というビルドエラーが発生

Flutter2.10.x以前で作ったプロジェクトをFlutter3.0にアップグレード後にビルドすると、アップグレード前はちゃんと動いていたにも関わらず、

../../../../flutter/.pub-cache/hosted/pub.dartlang.org/win32-2.3.3/lib/src/structs.g.dart:661:31: Error: Member not found: 'UnicodeChar'.
  int get UnicodeChar => Char.UnicodeChar;
                              ^^^^^^^^^^^
../../../../flutter/.pub-cache/hosted/pub.dartlang.org/win32-2.3.3/lib/src/structs.g.dart:662:38: Error: Setter not found: 'UnicodeChar'.
  set UnicodeChar(int value) => Char.UnicodeChar = value;
                                     ^^^^^^^^^^^
../../../../flutter/.pub-cache/hosted/pub.dartlang.org/win32-2.3.3/lib/src/structs.g.dart:664:29: Error: Member not found: 'AsciiChar'.
  int get AsciiChar => Char.AsciiChar;
                            ^^^^^^^^^
../../../../flutter/.pub-cache/hosted/pub.dartlang.org/win32-2.3.3/lib/src/structs.g.dart:665:36: Error: Setter not found: 'AsciiChar'.
  set AsciiChar(int value) => Char.AsciiChar = value;
                                   ^^^^^^^^^

というエラーが出て、ビルドに失敗する場合があります。

この場合は、

1)「pubspec.lock」ファイルを削除してから

2)Terminalから「flutter clean」して

3)再度「pub get」すると

なぜか解消しました(なぜかはよくわかりません)。

 

「pub get」すると「Failed to build intl_utils:generate:」エラーが発生

Flutter2.10.x以前で作ったプロジェクトをFlutter3.0にアップグレード後に「pub get」すると

アップグレード前は普通に出来ていた(exit code 0)のに、

/Users/telulullc/flutter/bin/flutter --no-color pub global run intl_utils:generate
Failed to build intl_utils:generate:
Error: Couldn't resolve the package 'intl_utils' in 'package:intl_utils/intl_utils.dart'.
Error: Couldn't resolve the package 'intl_utils' in 'package:intl_utils/src/generator/generator_exception.dart'.
Error: Couldn't resolve the package 'intl_utils' in 'package:intl_utils/src/utils/utils.dart'.
../../../flutter/.pub-cache/hosted/pub.dartlang.org/intl_utils-2.6.1/bin/generate.dart:3:8: Error: Not found: 'package:intl_utils/intl_utils.dart'
import 'package:intl_utils/intl_utils.dart';
・・・・

という謎の大量エラーが発生することがあります。

その場合は、

1)Terminalから「flutter pub cache repair」して(PCに保存しているパッケージのソースコードの修復。結構時間かかります)

 

2)キャッシュクリアしてからAndroid Studioを再起動すると

うまくいきました。

 

iOSアプリとしてビルドすると「Requested but did not find extension point with identifier Xcode.・・・」というエラーが発生

Flutter2.10.x以前で作ったプロジェクトをFlutter3.0にアップグレード後にiOSアプリとしてビルドすると、アップグレード前はちゃんと動いていたにも関わらず、

xcodebuild[75892:3182634] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
xcodebuild[75892:3182634] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore

というエラーが出て、ビルドに失敗する場合があります。

これは「パッケージ」だけを使っている場合には発生しないようで、プラットフォーム固有の機能を使う「プラグイン」を使っている場合に発生するようです。

ぼくの知る限りでは「image_picker」パッケージを使ってるプロジェクトで発生しましたが、これについては

1)パッケージのバージョンを最新(2022/5/12時点:0.85+2)にして

2)Podfile.lockファイルを削除してから

3)Terminalから「flutter clean」して

4)「pub get」して

5)Terminalからiosフォルダに移動して「pod repo update」

すると解消しました。

 

Gitコマンドでpushしようとすると「Invocation failed Unexpected end of file from server」エラーが発生

Android Studio内で使えるGitコマンドで「push」しようとすると、Android Studioのアップグレード前は問題なく出来ていたのに、

Invocation failed Unexpected end of file from server
java.lang.RuntimeException: Invocation failed Unexpected end of file from server
  at git4idea.GitAppUtil.sendXmlRequest(GitAppUtil.java:30)
  at git4idea.http.GitAskPassApp.main(GitAskPassApp.java:58)
Caused by: java.net.SocketException: Unexpected end of file from server
  at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
  at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
  at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:863)
  at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
  at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
  at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
  at org.apache.xmlrpc.DefaultXmlRpcTransport.sendXmlRpc(DefaultXmlRpcTransport.java:87)
  at org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:72)
  at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:194)
  at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:185)
  at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:178)
  at git4idea.GitAppUtil.sendXmlRequest(GitAppUtil.java:27)
  ... 1 more
・・・

というエラーが出て失敗してしまう場合があります。

その場合は、Android Studioの設定画面(Windowsの場合は「File => Settings」、Macの場合は「Android Studio => Preferences」)から、以下の要領で「Use credential helper」にチェックを入れてやると解消しました。

 

(注)以下のフォームより当社公式メールマガジンにご登録頂くことで
約6時間のFlutter動画講座が無料で受講できます!

(メールマガジンは登録無料・いつでも解除可)

[体験版]
ゼロからのFlutter
(Flutter初級編) 

 

【体験版講座に含まれるもの】
・約70本・約6時間の動画テキスト
・1つの課題アプリのソースコード
・Flutterアプリを作るための「環境構築ライブサポート(Google Meet)」
(「体験版」は全30時間超の「製品版」の約1/6を抜粋した講座です。「製品版」の詳細はこちらから)

 

【当社公式メルマガご登録6大特典】

\約6時間動画講座を無料プレゼント!/
今すぐ無料体験版に申し込む ▶
無料メルマガ登録で講座割引クーポンなど6大特典ゲット!

こんな記事も読まれています

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)

はじめての方へ


みんプロ式プログラミング講座体系・ラインナップ
みんプロ式プログラミング講座受講の流れ(割引特典利用方法)
サイトマップ(みんプロHPコンテンツ一覧)
運営会社概要

みんプロ作成アプリ





みんプロ式動画講座(コア・Flutter)

ゼロからのFlutter(初級編)-はじめてのプログラミングからアプリリリースまで-
Flutter中級編1-Web通信・設計・状態管理・DIの基礎-
Flutter中級編2-Firebase/地図・カメラ連携等の基礎-
Flutter中級編3-広告/アプリ内課金等の基礎-
Flutter中級編4-Webアプリとレスポンシブデザインの基礎-

みんプロ式動画講座(サテライト)

Flutter/Dartトラブルシューティング・小ネタ集(コア初級編受講で無料プレゼント)
ゼロからのGit・GitHub(コマンドラインツールを極力使わないバージョン管理入門)
Flutter/Dartにおける設計・状態管理・DIの解説集
Dart逆引き大辞典
Flutterにおけるテストの基礎

今すぐプレゼントを受け取る(約6時間のFlutter初級編体験版動画講座を無料でプレゼント)
TOP