인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

강지원님의 프로필 이미지

작성한 질문수

맛집 지도앱 만들기 (React Native + NestJS)

[2-5] Drawer Navigation

Android 환경 build error 관련 질문 드립니다.

작성

·

206

·

수정됨

0

질문 작성시 꼭 참고해주세요

  • 현재 문제(또는 에러)와 코드(또는 github)를 첨부해주세요.

     

  • 맥/윈도우, 안드로이드/iOS, ReactNative, Node 버전 등의 개발환경을 함께 적어주시면 도움이 됩니다.

     

  • 에러메세지는 일부분이 아닌 전체 상황을 올려주세요. (

    일부만 자르거나 복사하지말아주세요.)

     

  • 개발환경/코드에 대한 정보가 없을경우 답변이 어렵습니다.


IOS는 빌드가 잘 이뤄지지만 AOS에서 빌드 에러가 발생합니다.

react-native-reanimated 설치 이후 gradle이 문제인 것으로 보여져

여러 시도를 해봤는데 해결이 되지 않아 질문드립니다.

 

1. 개발 환경 정보

  • Mac M1 Pro 사용.

     

  • npx react-native doctor 명령어 실행 시 에러 발생 없음.

     

 

2. 프로젝트 버전 정보

  • Android gradle plugin: 7.4.2

  • Gradle: 8.0.1

  • React-native: 0.72.17

  • react-native-reanimated": "^3.15.0

  • Node: 23.7.0

  • Nvm: 0.40.1

  • Ruby: 3.2.6

  • java: openjdk 17.0.14 2025-01-21

package.json

{
  "name": "pawpaw",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "lint": "eslint .",
    "start": "react-native start",
    "test": "jest"
  },
  "dependencies": {
    "@react-native-masked-view/masked-view": "^0.3.2",
    "@react-navigation/drawer": "^6.7.2",
    "@react-navigation/native": "^6.1.18",
    "@react-navigation/stack": "^6.4.1",
    "react": "18.2.0",
    "react-native": "0.72.17",
    "react-native-gesture-handler": "^2.22.1",
    "react-native-reanimated": "^3.16.7",
    "react-native-safe-area-context": "^5.1.0",
    "react-native-screens": "^4.5.0"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/preset-env": "^7.20.0",
    "@babel/runtime": "^7.20.0",
    "@react-native/eslint-config": "^0.72.2",
    "@react-native/metro-config": "^0.72.12",
    "@tsconfig/react-native": "^3.0.0",
    "@types/react": "^18.0.24",
    "@types/react-test-renderer": "^18.0.0",
    "babel-jest": "^29.2.1",
    "eslint": "^8.19.0",
    "jest": "^29.2.1",
    "metro-react-native-babel-preset": "^0.76.9",
    "prettier": "^2.4.1",
    "react-test-renderer": "18.2.0",
    "typescript": "4.8.4"
  },
  "engines": {
    "node": ">=16"
  }
}

 

3. zshrc 정보

export PATH="/opt/homebrew/bin:$PATH"

export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \\. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \\. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools

export PATH=$HOME/.rbenv/shims:$PATH
eval "$(rbenv init - zsh)"

 

4.문제 해결을 위한 시도

1)gradle.properties에 추가 속성을 설정

android.disableAutomaticComponentCreation=true
org.gradle.java.home=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home

2) react-native-reanimated 3.5.4 ,3.3.0버전과 3.16.7버전 설치 후 빌드를 시도해도 해결 X

3) babel.config.js에 react-native-reanimated/plugin 추가

 

5.터미널에 발생한 에러 내용

터미널 스크린샷 01.png터미널 스크린샷 02.png

 

답변 2

0

Kyo님의 프로필 이미지
Kyo
지식공유자

해당에러는 보통 reanimated 호환성 이슈로 버전을 다르게 설치하여 해결된 분들이 많은데요.

혹시 리셋캐시도 해보셨을까요?

3.3.0이나 3.5.4로도 해결되지않았다면 아래 글의 코멘트를 참고해서 해보시겠어요?

https://www.inflearn.com/community/questions/1463090

 

강지원님의 프로필 이미지
강지원
질문자

참고로 전달해주신 자료 내용을 적용해봤지만 그럼에도 해결은 안되었습니다.

마지막으로 자바 버전만 17로 세팅해서 시도해보고

이마저도 안되면 이후 진도를 나가며 조금씩 다시 해결 시도를 해보도록 하겠습니다! 답변 주셔서 감사합니다 강사님!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 강지원님께서 겪고 계신 Android 환경에서의 빌드 실패 문제는 주로 Gradle 설정, JDK 버전 또는 react-native-reanimated와 관련된 호환성 문제일 가능성이 높습니다. 에러 메시지를 같이 분석하면서 해결 방법을 간단히 요약드리겠습니다.

  1. Java JDK 버전 문제:

    • 에러 메시지에서 “switch rules are not supported in -source 11” 및 “instanceof pattern matching” 관련 문제를 보았습니다. 이는 JDK의 소스 버전과 관련된 문제로, 현재 JDK 17을 사용하고 계시지만 Gradle 설정 내에는 소스 호환성을 명시하지 않아서 발생할 가능성이 큽니다.
    • 해결 방법: Gradle 파일(예: android/build.gradle)에 compileOptions를 추가하여 문제를 해결할 수 있습니다.
     android {
         ...
         compileOptions {
             sourceCompatibility JavaVersion.VERSION_17
             targetCompatibility JavaVersion.VERSION_17
         }
         ...
     }
    
  2. react-native-reanimated 호환성 문제:

    • react-native-reanimated 모듈에서 Java 11 관련 문제로 보이지만, JDK 17에서도 동작해야 합니다. --source 14 or higher 사용이 필요할 수 있습니다.
    • 해결 방법: Gradle 빌드 시 --release 플래그를 사용하여 JDK 설정을 명확히 하거나, 최신 버전의 react-native-reanimated를 유지하며 JDK 17에 맞는 구성 옵션을 체크합니다.
  3. Gradle 및 Android Gradle Plugin 버전:

    • 최신 Gradle 및 Android Gradle Plugin을 사용 중이시므로, 프로젝트의 android/app/build.gradle 및 루트 build.gradle 파일에 잘 맞춰져 있는지 확인이 필요합니다. 빌드가 깨지거나 호환성 문제가 있을 시 해당 설정을 수정합니다.

아래는 비슷한 문제를 겪은 다른 학습자들의 질문입니다. 그들의 해결 방법을 참고하여 문제를 풀어보실 수 있습니다.
- react-native-maps 적용시 안드로이드 빌드 에러
- 안드로이드 시뮬레이터 에러 해결

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

강지원님의 프로필 이미지
강지원
질문자

android > build.gradle에 compileOptions을 적용해봤지만 ./gradlew clean을 실행하면 빌드 에러가 발생합니다.

프로젝트를 재생성해보기도 했지만 계속 문제가 발생하네요