본문 바로가기

React Native

React Native: Android, gradle # gradle-wrapper # AGP (com.android.tools.build:gradle)

728x90
반응형

React Native를 통해 Android개발을 진행하는 과정에서

 

빌드를 할 때 gradle을 통해 진행이 된다.

이때 gradle의 버전이 프로젝트에 따라서 중요한데,

 

gradle의 버전과 관련하여 혼동되는 부분이 존재한다.

 

프로젝트/android/grale/wrapper/gradle-wrapper.properties 를 보면,

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip

위와 같은 형태로 프로젝트 빌드시 사용할 gradle 버전이 명시되어 있다.

 

그리고 내가 현재 진행하는 프로젝트의 프로젝트/android/build.gradle 에는 다음과 같은 gradle 버전이 명시되어 있다.

buildScript {
    ...
    dependencies {
        ...
        classpath("com.android.tools.build:gradle:7.3.1")
        ...
    }
    ....
}

 

실제로 빌드를 하면 프로젝트/android/.gradle에 7.5.1에 대한 버전이 명시가 되어 있는데,

android/build.gradle에는 위와 같이 다른 버전의 gradle이 명시되어 있다.

 

심지어 빌드가 잘 되는데, 때로는 다른 plugin을 추가함에 따라 위의 버전이 문제를 일으키기도 한다.

 

왜 그럴까하고 찾아보니,

 

gradle-wrapper.properties에 명시되어 있는 gradle의 버전은 내 프로젝트를 빌드할 때 사용될 버전이고

android/build.gradle의 dependencies에 명시되어 있는 버전은

Android를 build할 때 사용하게 될  gradle 버전으로, Android Gradle Plugin의 버전이다. (AGP라고도 함)

 

프로젝트의 gradle 버전에 따라서, 호환되는 AGP의 버전이 달라서 오류가 발생할 수 있다.

(본인은 Firebase를 도입하면서 AGP의 버전이 문제가 발생하였고, 7.2.1에서 7.3.1로 변경하였다.)

728x90
반응형