Android build 시 VerifyError 발생
오랜만에 Android Studio를 켜서 3.6.2로 버전업을 하였더니 빌드가 실패한다.
아래와 같은 에러들이 보인다. 숫자는 프로젝트마다 조금씩 다른 듯, Git branch와는 관계가 없다.
- ERROR: Uninitialized object exists on backward branch 45
- Caused by: java.lang.VerifyError: Uninitialized object exists on backward branch 45
기존에는 Oracle JDK를 1.8을 설치하여 쓰고 있었는데 Android Kotlin 관련 업데이트와 충돌을 하는 듯 싶다.
Jetifier 빌드 툴 동작중 문제가 된다. Jetifier가 무엇인지는 아래 링크 참조
https://developer.android.com/studio/command-line/jetifier?hl=ko
jetifier | Android 개발자 | Android Developers
독립형 Jetifier 도구는 동등한 AndroidX 패키지를 대신 사용할 수 있도록 지원 라이브러리에 종속된 라이브러리를 이전합니다. 이 도구를 사용하면 Android 스튜디오와 함께 번들로 제공되는 Android Gradle 플러그인을 사용하는 대신 개별 라이브러리를 직접 마이그레이션할 수 있습니다. 참고:이전을 시작하기 전에 지원 라이브러리의 버전 28.0.0을 사용하도록 라이브러리를 업데이트해야 합니다. Jetifier 설치 Jetifier를 설치
developer.android.com
검색하여보니 아래와 같이 Embedded JDK를 연결하도록 변경하면 되는 듯
Gradle sync failed: Uninitialized object exists on backward branch 70
My android app failed to sync gradle with the following error in build log: Uninitialized object exists on backward branch 70 Exception Details: Location: com/android/build/gradle/tasks/
stackoverflow.com
아래와 같이 File 메뉴에서 Project Structure... 메뉴를 선택하고
아래와 같이 SDK Location에서 JDK location을 Embedded JDK로 바꾸니 빌드가 다시 잘 된다.
여러 프로젝트가 열려있으면 모두 적용이 된다.
Google의 Oracle 탈출의 일환인 듯..?