LoginSignup
1

More than 3 years have passed since last update.

Flutterのセットアップ[Mac]でエラー多すぎて詰んだけどなんとかなった方法

Last updated at Posted at 2019-08-18

IT系の会社に書類選考で受かり(フリーランス契約)、面接までにFlutterのセットアップをしてほしいと言われたので頑張ってみたらエラー多すぎて死にそうになりました。
でもなんとかなったのでメモとしてここに置いときます。同じように悩んでいる方がいたら参考になれば。

はじめに

・MacOSはMojaveの最新版をインストール
・Xcodeをインストール
・Android Studioをダウンロード
を済ませます
多分大体の人は既に入っていると思うのでこの辺の説明は省きます

Android StudioにFlutterのプラグインをインストール

ConfigureからPluginsよりFlutter Pluginをインストールします
Flutter Pluginが出てこない人はAndroid Studioをアップデートすれば出てくるはずです

エミュレータの起動

ConfigureからAVD Managerを起動し、
Create Virtual DeviceでPxel 2を選択、PieのDownloadをし、進む、実行ボタンで起動します

動作確認

動くか確認します
Android Studioを改めて起動し、Start a new Flutter project からFlutter Applicationを作成します
Install SDK をダウンロード(画像の矢印のところからダウンロードページに飛べます)
スクリーンショット 2019-08-19 3.20.24.png

Flutter SDK pathには先程ダウンロードしたSDKファイルの場所を指定します。
Finishで起動できたら実行ボタンを押し、エミュレータでアプリが起動できれば成功です(私は数分かかりました 遅いと思ったらコンソールを確認して気長に待ちましょう)

隠しファイルを表示

.bash_profileというファイルを編集したいのですが、隠しファイルのため表示できません。
なので隠しファイルを表示できるようにしましょう。
ターミナルを起動し、

$ defaults write com.apple.finder AppleShowAllFiles -boolean true

を入力し、
処理が終わったら

$ killall Finder

を入力しましょう

.bash_profileの確認

まず.bash_profileが存在するか確認しましょう

$ ls -a

で、隠しファイルが表示されます
.bash_profileがあるかどうか確認しましょう
もしなければ

$ touch .bash_profile

で作れます

PATHを通す

.bash_profileの中身を編集しましょう

$ open .bash_profile

で、テキストエディットが.bash_profileを開いてくれます
そこに
export PATH=”$PATH:~/Documents/flutter/bin
と記入しましょう

ターミナルをもう一度起動し、

$ flutter

が起動すれば成功です

ライセンス認証

$ flutter doctor --android-licenses

を実行します

するとエラーが...(エラーが出ずにそのまま行けた人は次の項目まで飛ばしてください)

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
A newer version of the Android SDK is required. To update, run:
/Users/nanaho/Library/Android/sdk/tools/bin/sdkmanager --update

これによるとエラーは

$ /Users/nanaho/Library/Android/sdk/tools/bin/sdkmanager --update

と打つと回避できるらしいです
これでもまたエラー出た!!!って焦った方、安心してください、私もです
(エラーが出ずにそのまま行けた人は次の項目まで飛ばしてください)

私の出たエラーはこちら↓

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 5 more

調べた結果、現在のSDKのバージョンはJava9より上のバージョンにはに対応しておらず、Java8でないと動かないらしいです。

現在のJavaのバージョンを確認してみましょう

$ java -version

9以降のバージョンであれば、Javaのバージョンが原因です

$ /usr/libexec/java_home -V

で、インストールされているJDKのバージョンが表示されます。
もしそのなかにJava8("Java SE 8")がなければインストールしましょう

(Java8を既に持っている方は・・・まで飛ばしてください 切替方法を記載します)

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
こちらからJava SE Development Kit 8u221を自分の機種に合わせてインストールします
(Oracleのアカウントが必要なのでログインまたは登録しましょう)

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

Javaのバージョンを切り替えます

$ export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0`

一応切り替わっているか確認しましょう

$ java -version

java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)

と出てくれば成功です

これでエラーのエラー(/Users/nanaho/Library/Android/sdk/tools/bin/sdkmanager --updateのエラー)を回避できる条件が達成しました!!!
早速もう一度打ってみましょう

$ /Users/nanaho/Library/Android/sdk/tools/bin/sdkmanager --update

(y/n)の確認が多いですがyとエンターを押していきましょう
エラーも出ず無事できました!

これでエラー(flutter doctor --android-licensesのエラー)を回避できる条件が達成しました!!!
早速もう一度打ってみましょう

$ flutter doctor --android-licenses

成功しました!

Flutter Doctorの実行

これでついに終わりです やっと寝れます

$ flutter doctor

を入力するだけです
成功した方はおめでとうございます。セットアップは終了です。
エラーした方、安心してください、私もです(2回目)
↓エラー文

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Doctor summary (to see all details, run flutter doctor -v):

Oops; flutter has exited unexpectedly.
Crash report written to /Users/nanaho/flutter_03.log;
please let us know at https://github.com/flutter/flutter/issues.

MacOSをアップデートするとなるらしいです。
xcodeを再インストールすると治るっぽい。

$ xcode-select --install

割と時間かかります。あるあるの予想時間がどんどん増えていくやつです。
インストールが終わったらもう一度入力しましょう

$ flutter doctor

Building flutter tool...と表示されれば成功です。長いですが待ちましょう。

[✗]や[!]の項目が出たら最後の気合を振り絞って解決しましょう
何がだめなのか詳細に書いてくれているので和訳すれば解決方法がすぐわかります。(実際にすんなりできました)
[!] Connected device
! No devices available

というエラーは、Android Studioでエミュレータを起動させると解決します(ので、無視しても大丈夫ですが一応起動してエラーが消えるか確認しておきましょう)

終了

おつかれさまでした!セットアップはすべて終了です
やっぱりなんでもセットアップが一番めんどくさいですね

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1