Slide 1

Slide 1 text

Android Gradle plugin起因で Flutter Buildがこけた話 Koji Wakamiya / Studyplus Inc. 2019.01.30 @Flutter Meetup Tokyo #7 1

Slide 2

Slide 2 text

自己紹介 Name : Koji Wakamiya Work : Studyplus, inc. Github : @koji-1009 Twitter : @D_R_1009 Android開発メインでやってます 2

Slide 3

Slide 3 text

MISSION 「学ぶ喜びをすべての人へ」 多くの人がStudyplusを通じて学習のきっかけを見つけ、 学習を楽しく継続できることを実現する。 3

Slide 4

Slide 4 text

Android Studio 3.2.1発表数日後 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

なにがおきた? ● 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

Slide 7

Slide 7 text

ビルドできない原因 ● 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

Slide 8

Slide 8 text

対応方法 ● ローカルの場合 ○ Flutter SDK内部のファイルを書き換えてしまえば対応可能 ○ {flutter SDK root}/packages/flutter_tools/gradle/flutter.gradle を修正する ● CI/CDサーバー ○ stable/beta/devの利用しているチャンネルで対応が入るまで対応不可能 ○ “コントリビュートチャンス ” 8

Slide 9

Slide 9 text

CI/CDを利用する場合は、 SDKとプロジェクトの更新を 一致させよう 9

Slide 10

Slide 10 text

まとめ ● Flutter SDKとプロジェクトのAndroid Gradle pluginをチェックしよう ○ Flutter SDKのstable版とAndroidStudioのリリースタイミングは一致しない ○ “Androidプロジェクト”ではなく“Flutterプロジェクト”だと意識し直す ○ stable版になったため、 beta版の時のような対応の早さは期待しない ● 困ったらflutter_toolsを見てみる ○ Android : flutter.gradle ○ iOS : どこをみると良いか教えてください。。。 10