表題の通りAndroidStudioのすすめるまま、GradlePluginのバージョン上げたらビルド通らなくなりました。
エラーログには Execution failed for task ':app:kaptStagingDebugKotlin' とあったのでKotlin関係でなんかあった?って調べ始めてたどり着いた先は違ったので解決までの道のりを記したいと思います。
結論
公式ドキュメントを読もう!
https://developer.android.com/topic/libraries/data-binding/start
原因
Execution failed for task ':app:kaptStagingDebugKotlin'
タスク名みるとKotlin関係のライブラリの更新が必要なのかな?とか思いますがそっちじゃありませんでした。
Buildログをさかのぼってみるとこんな感じのエラーが大量に吐かれています。
見たままですね。DataBindingの方で問題がありビルドが通らなくなってました。
databinding.enableV2
先のエラーログから紆余曲折を経てたどり着いたのは公式ドキュメントでした…
https://developer.android.com/topic/libraries/data-binding/start
New data binding compiler for binding classes
のセクションに記載している通り、GradlePlugin 3.1より設定方法が変わっていました。
これまで以下のように記述していたと思いますが、これが変更にりgradle.propertiesで記載するようになっています。
また、dependenciesブロックに記載していたkaptの記載は不要になりましたので消しましょう。
// 古い方
android{
dataBinding {
enabled = true
}
...
}
dependencies {
kapt "com.android.databinding:compiler:$gradle_plugin_version" //これは不要
...
// gradle plugin:3.1から
android.databinding.enableV2=true
そのた
- Android Studioがすすめるままに更新したんですが、もともとのgradle pluginが2.3.3だったので解決までに時間かかりました…
- dependenciesブロックのライブラリ記述方法がcompileからimplementationに変わってたりとか
- targetSdkも古いプロジェクトだったのでそっちの対応も必要だったり
参考
この他3.2で変わったこと対応が必要なことについてはこちらが参考になるかもしれません。
https://qiita.com/takahirom/items/c8df8dfdc8056f903395
3.0 -> 3.1についてはこちら
https://qiita.com/taki4227/items/00e295c8aaf79d463312