Android Gradle plugin起因でFlutter Buildがこけた話

Android Gradle plugin起因でFlutter Buildがこけた話

Flutter Meetup Tokyo #7のLT資料です。

494a2760dceccc31c4bcdb689041c614?s=128

Koji Wakamiya

January 30, 2019
Tweet

Transcript

  1. Android Gradle plugin起因で Flutter Buildがこけた話 Koji Wakamiya / Studyplus Inc.

    2019.01.30 @Flutter Meetup Tokyo #7 1
  2. 自己紹介 Name : Koji Wakamiya Work : Studyplus, inc. Github

    : @koji-1009 Twitter : @D_R_1009 Android開発メインでやってます 2
  3. MISSION 「学ぶ喜びをすべての人へ」 多くの人がStudyplusを通じて学習のきっかけを見つけ、 学習を楽しく継続できることを実現する。 3

  4. Android Studio 3.2.1発表数日後 4

  5. 5 https://dr1009.hatenablog.com/entry/2018/10/31/234803

  6. なにがおきた? • FlutterプロジェクトのAndroid Gradle pluginを更新したらbuild apk に失敗 エラー: * What

    went wrong: A problem occurred evaluating project ':app'. > Could not resolve all artifacts for configuration 'classpath'. > Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2). 6
  7. ビルドできない原因 • 3.2.1にてlint-gradle-api:26.1.2を利用するように更新 • lint-gradle-api 26.1.2よりGoogle Maven Repositoryにホスティング先が変更 ◦ jcenter()ではなくgoogle()を見にいく必要が発生

    ◦ gradle taskで処理される箇所のため変更に気づいていなかった Flutter SDK内部のGradle Plugin versionが古かった(3.1.2)ため FlutterプロジェクトのGradle Plugin version(3.2.1)と不整合が生じたのが原因! 7
  8. 対応方法 • ローカルの場合 ◦ Flutter SDK内部のファイルを書き換えてしまえば対応可能 ◦ {flutter SDK root}/packages/flutter_tools/gradle/flutter.gradle

    を修正する • CI/CDサーバー ◦ stable/beta/devの利用しているチャンネルで対応が入るまで対応不可能 ◦ “コントリビュートチャンス ” 8
  9. CI/CDを利用する場合は、 SDKとプロジェクトの更新を 一致させよう 9

  10. まとめ • Flutter SDKとプロジェクトのAndroid Gradle pluginをチェックしよう ◦ Flutter SDKのstable版とAndroidStudioのリリースタイミングは一致しない ◦

    “Androidプロジェクト”ではなく“Flutterプロジェクト”だと意識し直す ◦ stable版になったため、 beta版の時のような対応の早さは期待しない • 困ったらflutter_toolsを見てみる ◦ Android : flutter.gradle ◦ iOS : どこをみると良いか教えてください。。。 10