Flutterで遭遇したエラー対応をまとめます

2021-06-06

はじめに

Flutterで遊んでいるけど、色んなエラーが出ていてそれぞれで対処した話をこっそりまとめてました。

ラムダ式を使用可能にするには、-source 8以上を使用してください

Flutter runにdebugを追加して実行した時にこんなエラーがでることがあります。

flutter run --debug

たまに出力結果の日本語が文字化けしていることがあります。 Consoleの文字コードが異なるからです。

C:\Users\kenpos\AppData\Local\Pub\Cache\hosted\pub.dartlang.org\location-4.2.0\android\src\main\java\com\lyokone\location\FlutterLocation.java:280: エラー: ラムダ
式は-source 1.7でサポートされていません
            mMessageListener = (message, timestamp) -> {
                                                    ^
  (ラムダ式を使用可能にするには、-source 8以上を使用してください)
エラー1個

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s

Exception: The plugin location could not be built due to the issue above.

文字コードの変更

chcp 932

これで文字コードをshift_jisに差し替えてください。

エラーの解決方法

Java7までだとラムダ式に対応していないのでJAVA8を動かせるようにします。

Android Studioを開いて、File → Project Structure → Project を開き設定を下のようにします。

これでプロジェクトが治るはずです。

pub finished with exit code 69

flutter pub cache repairを動かすと、 pub finished with exit code 69 が出ることがあります。 エラーの出力例としてはこんなのが出ます。

For solutions, see https://dart.dev/go/unsound-null-safety
Binstubs exist for non-activated packages:
  From devtools: devtools
Failed to reactivate 1 package:
- devtools
pub finished with exit code 69

解決策にはこれを叩きましょう。

flutter packages get

これで再度下記のコマンドを実行します。

正常終了してるっぽいですね。

flutter pub cache repair
Downloading adobe_xd 2.0.0+1...
Downloading _fe_analyzer_shared 21.0.0...
Downloading _fe_analyzer_shared 22.0.0...
Reinstalled 194 packages.
Binstubs exist for non-activated packages:
  From devtools: devtools

Minimum supported Gradle version is 6.5. Current version is 5.4.1. If using the gradle wrapper

この手のエラーに対応していきましょう

* What went wrong:
A problem occurred evaluating root project 'location'.
   > Minimum supported Gradle version is 6.5. Current version is 5.4.1. If using the gradle wrapper, try editing the distributionUrl in C:\Users\kenpos\AppData\Local\Pub\Cache\hosted\pub.dartlang.org\location-4.2.0\android\gradle\wrapper\gradle-wrapper.properties to gradle-6.5-all.zip

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan
to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 58s

Exception: The plugin location could not be built due to the issue above.

修正方法

C:\Users\kenpos\AppData\Local\Pub\Cache\hosted\pub.dartlang.org\location-4.2.0\android\gradle\wrapper\gradle-wrapper.properties

開くと中に書いてあるファイルを書き換えます。

#Sun Feb 16 18:22:06 CET 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

これで上のエラーは解決します。

FAILURE: Build failed with an exception.

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':compileReleaseAidl'.
> SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk.dir path in your
project's local properties file at 'C:\Users\kenpos\AppData\Local\Pub\Cache\hosted\pub.dartlang.org\location-4.2.0\android\local.properties'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan
to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 3s

Exception: The plugin location could not be built due to the issue above.

解決方法

ANDROID_SDK_ROOTをシステム環境変数に設定します。 変数名は、ANDROID_SDK_ROOT 変数値は、C:\Users{user名}\AppData\Local\Andoid\Sdk

これで動かし直せば動きます。

まとめ

なんか色んなエラー対応が溜まってきたので記事にしてます。 何かの参考になれば幸いです。