Continuity is The Father of Success

Androidアプリとかゲームとか。毎日続けてるものについて。

AndroidStudio3.2.1を利用しているとFlutterでapkがビルドできなくなる問題

雑感

※2018.10.31 10:30時点で対応策は出ているけどCI上なんかだと難しそうです
※対応できるまではGradle Pluginは3.1.2とかの方が良さそう

主題

AndroidStudio3.2.1がリリースされて喜び勇んでアップデートし、合わせてFlutterプロジェクトの中のGradle Pluginも3.2.1にあげたところ下記のエラーが出るようになりました。

* 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).
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar

困った。ということで調査した結果をメモがわりにまとめておきます。

関連するGithubのチケット

たぶん下記2件が一番話が進んでます。

Fixes gradle error: 'Could not find lint-gradle-api.jar' (#23095) by mrmitew · Pull Request #23397 · flutter/flutter · GitHub

Could not find aapt2-proto.jar (com.android.tools.build:aapt2-proto:0.3.1). · Issue #23404 · flutter/flutter · GitHub

betaチャンネルの場合、プロジェクト側で3.2.1にあげてもFlutter SDK側で3.1.2を利用しているため、変わっちゃったjarのpathが取得できずエラーになっている模様。
上記のPRはそれに付け加えて、jCenterよりもGoogle's Maven repositoryを優先して検索させるように修正しているみたいです。

PRはマージされたものの、本日(2018.10.31)のbeta(0.9.4)もdev(0.10.1)にもコミットが反映されていないのでmasterを利用する or ローカル環境だけ手動で書き換えるしかないようです。残念。

自分が使っているBitriseではタグとチャンネル名からFlutter SDKを取得しているようなので、静観することにしました。
急ぎならFlutterプロジェクト内のGradle Pluginを3.1.2とかにしておくと良さそうですね。flutter.gradleにある程度合わせて運用するほうが現実的な運用に思えてきました。

(最新版のProguardとか使いたくなるんですよね。。。)