본문 바로가기

IT

Android Studio 2022.2.1 Flamingo 에서 ButterKnife 의존성이 빌드가 안되는 경우

반응형

며칠전 Android Studio 가 2022.1.1 에서 2022.2.1 로 업데이트되었습니다.

거의 10년쯤 유지보수중인 회사 앱이 빌드가 되지 않아서 내용을 정리합니다.

 

일단 증상은 아래와 같습니다.

* What went wrong: Execution failed for task ':app:compileDebugJavaWithJavac'. > superclass access check failed: class butterknife.compiler.ButterKnifeProcessor$RScanner (in unnamed module @0x29cb76da) cannot access class com.sun.tools.javac.tree.TreeScanner (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.tree to unnamed module @0x29cb76da

 

ButterKnife 를 @BindView 에서 많이 사용하고 있습니다. 해당 의존성을 당장 걷어내는 것은 쉽지 않아서 일단 원인을 찾아봤습니다. 이유는 Android Studio 2022.2.1 로 업데이트되면서 포함된 JDK 의 버전이 11 버전에서 17 버전으로 변경되어 com.sun.tools.javac.tree 모듈에 대한 의존성이 해결되지 않아서 입니다.

 

해결 방법은 gradle 의 JDK 의 버전을 11버전으로 낮춰주면 됩니다. 설정 위치는 아래와 같습니다.

위와 같이 설정을 변경한 이후 빌드에 성공했습니다.

1-2년 사이에 안드로이드 앱에 대한 target sdk version 을 빠르게 적용하지 않으면 앱을 업데이트하지 못하게 하는 등의 경우가 있어서 언제까지 업데이트에 반영해야 하는지 확인이 필요합니다. 또한 개발툴의 버전 업데이트는 편리한 개발과 버그를 수정해 개발자의 개발에 편의성을 제공하므로 꼭 최신버전은 아니더라도 최대한 너무 낮은 버전을 사용하지 않도록 주기적으로 업데이트해야 할 필요가 있습니다.

 
 

com.sun.tools.javac.tree

 

반응형