[React Native] Android Build Error - Could not read /node_modules/expo-modules-core/android/build/downloads/boost_1_76_0.tar.gz.

김례원·2024년 1월 9일
post-thumbnail

[문제]

2023년 해가 바뀌고 2024년 오랜만에 Android Build를 다시 해보았다.
그동안 발생하지 않던 빌드 에러가 발생했다.
(Expo ejcet 한 프로젝트라 예상치 못한 이슈가 자주 발생한다.)

boost_1_76_0.tar.gz. 를 찾지 못한다니..

Execution failed for task ':expo-modules-core:prepareBoost'.
Could not read ${프로젝트 경로}/node_modules/expo-modules-core/android/build/downloads/boost_1_76_0.tar.gz.

[해결]

구글링 해본 결과, 이런 이슈가 간간이 발생하는지 expo Github 이슈에 올라와있었다.

  1. package 소스 코드 수정
    /node-modules/expo-modules-core/android/build.gradle 파일을 찾아 task downloadBoost()를 찾아 아래와 같이 코드 수정
    Before

    task downloadBoost(dependsOn: createNativeDepsDirectories, type: Download) {
      def srcUrl = REACT_NATIVE_TARGET_VERSION >= 69
        ? "https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION.replace("_", ".")}/source/boost_${BOOST_VERSION}.tar.gz"
        : "https://github.com/react-native-community/boost-for-react-native/releases/download/v${BOOST_VERSION.replace("_", ".")}-0/boost_${BOOST_VERSION}.tar.gz"
      src(srcUrl)
      onlyIfNewer(true)
      overwrite(false)
      dest(new File(downloadsDir, "boost_${BOOST_VERSION}.tar.gz"))
    }

    After

    task downloadBoost(dependsOn: createNativeDepsDirectories, type: Download) {
     def transformedVersion = BOOST_VERSION.replace("_", ".")
      def srcUrl = REACT_NATIVE_TARGET_VERSION >= 69
        ? "https://sourceforge.net/projects/boost/files/boost/${transformedVersion}/boost_${BOOST_VERSION}.tar.gz"
        : "https://github.com/react-native-community/boost-for-react-native/releases/download/v${BOOST_VERSION.replace("_", ".")}-0/boost_${BOOST_VERSION}.tar.gz"
      src(srcUrl)
      onlyIfNewer(true)
      overwrite(false)
      dest(new File(downloadsDir, "boost_${BOOST_VERSION}.tar.gz"))
    
    }
  2. patch-package 설치 및 아래 cli 실행

    $ yarn patch-package expo-modules-core
  3. node_modules 삭제 후, 재설치

    $ rm -rf node_modules && yarn
  4. 재실행

    $ react-native start --reset-cache
profile
분야를 가리지 않는 개발자

0개의 댓글