最近、また少しネイティブアプリへの興味が出てきています。そんな中、Flutter を触っていたのですが、新しい MBP にセットアップしていたところ、なぜかビルドが通らない!

発生したエラー

Android 向けにアプリをデバッグビルドした際、Resolving dependencies...の後に以下のエラーが出て停止してしまいました。

* Error running Gradle:
ProcessException: Process "/Users/mtakeuchi/Projects/xxxxxx/flutter-app/android/gradlew" exited abnormally:

> Configure project :app

Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/mtakeuchi/Projects/xxxxxx/flutter-app/android/app/build.gradle' line: 26

* What went wrong:
A problem occurred evaluating project ':app'.
> Could not resolve all artifacts for configuration 'classpath'.
   > Could not download javawriter.jar (com.squareup:javawriter:2.5.0)
      > Could not get resource 'https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar'.
         > Could not HEAD 'https://jcenter.bintray.com/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar'.
            > Connect to jcenter.bintray.com:443 [jcenter.bintray.com/52.42.33.115, jcenter.bintray.com/34.211.6.217] failed: Bad file descriptor (connect failed)
   ...(中略)

* 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
  Command: /Users/mtakeuchi/Projects/xxxxxx/flutter-app/android/gradlew app:properties

Finished with error: Please review your Gradle project setup in the android/ folder.

最初ネットワークエラーを疑いましたが、エラー中のリンクをブラウザで開くと普通に DL できましたし、ファイアーウォールを切ったりしても効果はなし。

次に、androidフォルダ内のみを開き、Gradle の Sync を行うと、下図のようにflutter.gradleを SDK から読み込む段階でエラーが発生している様子が窺えます。

Gradle Syncでエラー

開発環境

この時の手元の環境を確認すると以下のようになっていました。

❯ flutter doctor -v
[✓] Flutter (Channel stable, v1.7.8+hotfix.3, on Mac OS X 10.14.5 18F203, locale ja-JP)
    • Flutter version 1.7.8+hotfix.3 at /Users/mtakeuchi/flutter
    • Framework revision b712a172f9 (19 hours ago), 2019-07-09 13:14:38 -0700
    • Engine revision 54ad777fd2
    • Dart version 2.4.0


[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
    • Android SDK at /Users/mtakeuchi/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.2.1, Build version 10E1001
    • CocoaPods version 1.7.4

[✓] iOS tools - develop for iOS devices
    • ios-deploy 1.9.4

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 37.0.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[✓] VS Code (version 1.36.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.2.0

[✓] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)

• No issues found!

解決方法

androidフォルダ内のみを開き、Gradle Scripts内にあるgradle-wrapper.propertiesに書いてある Gradle のバージョンを上げてあげる(ビルドが通っていた旧 MBP のバージョンと揃える)と解決しました。

- distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
+ distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

参考情報

Could not resolve all artifacts for configuration 'classpath'.というエラーでビルドができない事例自体は、検索すると比較的よくあるようです。

ただ、build.gradle内のrepositoriesdependenciesをいじる解決策では解決せず、今回のような方法で解決することができました。