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

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

 

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

Android Studio「Chipmunk」の起動画面

 

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

Flutter 3のイメージ画像

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

 

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

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

「Trust and Open Project?」

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

「Trust and Open Project?」のダイアログ。フォルダ内のすべてか、今のプロジェクトだけを信頼するかを選ぶ

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

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

 

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

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

全プラットフォーム共通

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

プロジェクトのpubspec.lockファイルを削除する

 

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

Android StudioのTerminalで「flutter clean」を実行する

3)「pub get」

pubspec.yamlから「Pub get」を実行し、「exit code 0」になればOK

 

iOSのみ(Macのみ)

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

iosフォルダのPodfile.lockを削除する

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

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;
                                   ^^^^^^^^^

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

「Error: Member not found: 'UnicodeChar'」のビルドエラー

この場合は、

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

プロジェクトのpubspec.lockファイルを削除する

2)Terminalから「flutter clean」して

Android StudioのTerminalで「flutter clean」を実行する

3)再度「pub get」すると

pubspec.yamlから「Pub get」を実行し、「exit code 0」になればOK

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

 

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

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

pubspec.yamlから「Pub get」を実行し、「exit code 0」になればOK

アップグレード前は普通に出来ていた(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';
・・・・

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

pub getで「Failed to build intl_utils:generate」のエラーがたくさん出る

その場合は、

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

Terminalで「flutter pub cache repair」を実行する

 

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

File→「Invalidate Caches / Restart」から「Invalidate and Restart」を押す

うまくいきました。

 

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

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

iOSビルドで「Requested but did not find extension point with identifier Xcode.IDEKit」のエラーが出る

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

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

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

pubspec.yamlで、image_pickerのバージョンを最新(0.8.5+2)にする

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

iosフォルダのPodfile.lockを削除する

3)Terminalから「flutter clean」して

Android StudioのTerminalで「flutter clean」を実行する

4)「pub get」して

pubspec.yamlから「Pub get」を実行し、「exit code 0」になればOK

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

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
・・・

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

Gitでpushしようとすると「Invocation failed Unexpected end of file from server」のエラーが出る

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

設定のVersion Control→Gitで「Use credential helper」にチェックを入れる

 

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

人気No.1

前向きな気持ちになれる 占星術・タロットリーディング

あすコロ式・相談サロン 【ナビるやん】

人に言えない悩みから使命・運勢診断まで、あなたに寄り添いながら“ナビゲート”する、あすコロ人気No.1のオンライン相談サロン。占星術・心理学・タロットの叡智を活かし、普段認識していない「潜在意識」にアクセスしてあなたの気づいていない可能性を拓かせ、明日から前向きに歩めるようになる60分のリーディングセッション。

今すぐ詳細を見る(メルマガ登録で初回半額) ▶
GAMBO(願望) ✦ 願望実現・目標達成の
17秒 / 68秒ワーク
GAMBO(願望) 引き寄せ難民だったぼくの挫折経験から生まれた誰でもできる願望実現サポートアプリ。かの有名な17秒/68秒ワークを独自の視覚化メソッドで簡単実践。
App Store / Google Play 詳しく見る →
Meiso(瞑想) ◎ 鐘音と自然音で
5分からのマインドフルネス
Meiso(瞑想) 初心者でも“迷わず続けられる”ことにこだわった、完全無料の瞑想アプリ。画面のガイドに従うだけで呼吸のリズムが整い、最短5分から瞑想を実践できます。
App Store / Google Play 詳しく見る →
小学生からの英検®単語 A ふりがな・音声付き
英検単語1日5分トレーニング
小学生からの英検®単語 ありそうでなかった!ふりがな付き英検®単語トレーニングアプリ!1日たった5分!スキマ時間を活用して、英検®頻出単語を効率的に習得。お子様の一人学習にも安心設計。
App Store / Google Play 詳しく見る →
オボエルンジャー ★ レトロゲームで
nバック脳トレ
オボエルンジャー 科学的脳力開発法「Nバック課題」をファミコン風8bitレトロゲームにアレンジした新感覚脳トレアプリ。記憶力・感情コントロール力・集中力の向上に。
App Store / Google Play 詳しく見る →
ゴイコイコイ 語 超高速フラッシュカードで
語彙習得
ゴイコイコイ 日常語1400語を視覚的に学べる、高速読み上げフラッシュカード式の語彙トレーニングアプリ。知育教室で行われるフラッシュカード学習を、家庭で“手軽に・安価に・正確に”再現。
App Store / Google Play 詳しく見る →

TOP