AndroidStudio에서 GradlePlugin 3.2로 올리면 죽었습니다.

표제대로 AndroidStudio가 진행하는 동안 GradlePlugin의 버전을 올리면 빌드 통과하지 않게 되었습니다.
에러 로그에는 Execution failed for task ':app:kaptStagingDebugKotlin' 라고 있었기 때문에 Kotlin 관계로 뭔가 있었다? 라고 조사 시작하고 도착한 곳은 다르므로 해결까지의 길을 적고 싶습니다.

결론



공식 문서를 읽자!
htps : //로 ゔぇぺぺr. 안 d로이 d. 코 m / 토피 c / ぃ b 라 리 s / 다타 병 ぢ g / s rt

원인




 Execution failed for task ':app:kaptStagingDebugKotlin'

태스크 이름 보면 Kotlin 관계의 라이브러리의 갱신이 필요한 것일까? 라고 생각합니다만 그쪽이 아니었습니다.
Build 로그를 거슬러 올라가면 이런 느낌의 에러가 대량으로 토해지고 있습니다.



본 그대로입니다. DataBinding 쪽으로 문제가 있어 빌드가 통과하지 않게 되었습니다.

databinding.enableV2



앞의 에러 로그에서 우여곡절을 거쳐 도착한 것은 공식 문서였습니다.
htps : //에서 ゔぇぺぺr. 안 d로이 d. 코 m / 토피 c / ぃ b 라 리 s / 다타 병 ぢ g / s rt

New data binding compiler for binding classes
섹션에서 설명한 것처럼 GradlePlugin 3.1에서 설정 방법이 변경되었습니다.
지금까지 다음과 같이 기술하고 있었다고 생각합니다만, 이것이 변경에 gradle.properties로 기재하게 되어 있습니다.
또, dependencies 블록에 기재하고 있던 kapt의 기재는 불필요하게 되었으므로 지웁시다.

build.gradle
// 古い方
android{
  dataBinding {
      enabled = true
  }
  ...   
}

dependencies {
    kapt "com.android.databinding:compiler:$gradle_plugin_version" //これは不要
    ...

gradle.properties
// gradle plugin:3.1から
android.databinding.enableV2=true



  • 안드로이드 스튜디오가 진행하면서 업데이트했지만 원래 gradle plugin이 2.3.3이므로 해결하는 데 시간이 걸렸습니다 ...
  • dependencies 블록의 라이브러리 기술 방법이 compile에서 implementation으로 바뀌거나

  • targetSdk도 낡은 프로젝트이었으므로, 그 대응도 필요하거나

  • 참고



    이 외 3.2에서 바뀐 것 대응이 필요한 것에 대해서는 이쪽이 참고가 될지도 모릅니다.
    htps : // 코 m / 타카히로 m / ms / c8df8dfdc8056f903395
    3.0 -> 3.1에 대해서는 이쪽
    htps : // 이 m/타키 4227/있어 ms/00에 295c8 아 f79d463312

    좋은 웹페이지 즐겨찾기