Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

Koji Wakamiya

January 30, 2019
Tweet

More Decks by Koji Wakamiya

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. Android Studio 3.2.1発表数日後
    4

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide