React Native 0.69 업그레이드 후 Android 빌드 실패 해결

문제 상황

운영 중인 앱을 React Native 0.68에서 0.69로 업그레이드했다. iOS는 문제없이 빌드되었지만 Android에서 빌드 실패가 발생했다.

A problem occurred evaluating project ':app'.
> Failed to apply plugin 'com.android.internal.application'.

원인 파악

React Native 0.69부터 Gradle 7.5와 JDK 11이 필수가 되었다. 로컬 환경은 JDK 8을 사용하고 있었고, Gradle도 7.3 버전이었다.

공식 문서를 확인하니 breaking change로 명시되어 있었다.

해결 과정

  1. JDK 11 설치 및 전환
# macOS Homebrew 사용
brew install openjdk@11

# .zshrc에 추가
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
  1. Gradle 래퍼 버전 업데이트

android/gradle/wrapper/gradle-wrapper.properties 수정:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
  1. android/build.gradle 확인
buildscript {
    ext {
        buildToolsVersion = "31.0.0"
        minSdkVersion = 21
        compileSdkVersion = 31
        targetSdkVersion = 31
    }
    dependencies {
        classpath("com.android.tools.build:gradle:7.2.1")
    }
}
  1. 클린 빌드
cd android
./gradlew clean
cd ..
rm -rf node_modules
yarn install
cd android && ./gradlew assembleDebug

결과

빌드가 정상적으로 완료되었다. CI/CD 파이프라인의 Docker 이미지도 JDK 11 기반으로 변경했다.

0.69 버전은 Hermes 엔진 개선이 주요 변경사항이라 다음 스프린트에서 테스트해볼 예정이다.