ある日、M1チップ搭載のMacBook AirでAndroid用リリースビルドしてたら、失敗しまくり、エラーでまくりでハマリました。ですが、なんとか抜け出せたので、その対処法と試したことを列挙していきます。
まず、出力されたエラーメッセージの一部を紹介
以下をターミナルで入力した。すると、、、
flutter build apk --release
以下のメッセージが出力され、ビルドに失敗する。(デバッグビルドは成功する)
A problem occurred configuring root project ‘camera’.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
解決までに試したこと
結局これで解決した:パッケージのバージョンを修正する
pubspec.yamlに記載したパッケージのバージョンを以下のように修正しました。
※修正後に『Pub upgrade』するのをお忘れずに
修正前:
pedantic: ^1.9.2
hooks_riverpod: ">=0.12.0 <1.0.0"
flutter_hooks: ">=0.14.0 <1.0.0"
tflite_flutter: ">=0.5.0 <1.0.0"
tflite_flutter_helper: ">=0.1.2 <1.0.0"
camera:
simple_logger: ">=1.7.0 <2.0.0"
修正後:
pedantic:
hooks_riverpod:
flutter_hooks:
tflite_flutter:
tflite_flutter_helper:
camera:
simple_logger:
よくわかりませんが、パッケージ同士の依存関係がうんぬんかんぬんだと思います。
flutter doctorで全部OKにする
flutter関連で不具合があったら、まずは『flutter doctor』をターミナルに打ち込むべきです。
打ち込んだ結果、自分は1つだけ異常でした。
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
! Some Android licenses not accepted. To resolve this, run: flutter doctor
--android-licenses
言われた通り『flutter doctor –android-licenses』するけど、無反応。そうM1チップだからね。(関係あるかは知らん)
ここによると、以下を入力すればいけるらしいのでやってみた。
~/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager --licenses
いけた。(でもパッケージのバージョン修正するまでリリースビルドには失敗)
上記コマンドは『Android SDK Command-line Tools』がインストールされていないと無効になります。未インストールの方は確認してみてください。
AndroidStudioのSDKManagerからインストールできます。
KeyStoreファイルのパスワードを再確認した
実は、これもリリースビルド失敗の原因だった。ただの凡ミスだ。
key.jksを開いてみたら、パスワードを求められて入力すると間違えてると言われた。ずっと勘違いしていたのだ。
ちなみに、KeyStoreファイルの作成方法は以下の記事で紹介している。
まとめ
解決まで2時間もかかってしまった。
落ち着いて一つ一つ問題を潰していくことが大事ですね。
そして、1回やったしまったミスは2度としないように注意していきたい。
ここまで読んでいただき、ありがとうございます。
コメント