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

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

ljy014님의 프로필 이미지

작성한 질문수

[중급] 맛집 지도앱 만들기 (React Native + NestJS)

프로젝트 세팅후 실행시 오류가 발생합니다

해결된 질문

작성

·

99

0

환경변수 세팅, 안드로이드 스튜디오 세팅 완료 후 실행했는데 아래와 같은 오류가 발생합니다

> react-native run-android

info JS server already running.
info Launching emulator...
error Failed to launch emulator. Reason: It took too long to start and connect with Android emulator: Medium_Phone_API_33. You can try starting the emulator manually from the terminal with: C:\Users\user\AppData\Local\Android\Sdk/emulator/emulator @Medium_Phone_API_33.
warn Please launch an emulator manually or connect a device. Otherwise app may fail to launch.
info Installing the app...
> Task :app:compileDebugJavaWithJavac FAILED
19 actionable tasks: 2 executed, 17 up-to-date

info 💡 Tip: Make sure that you have set up your development environment correctly, by running react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor 


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':app:androidJdkImage'.
   > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
      > Execution failed for JdkImageTransform: C:\Users\user\AppData\Local\Android\Sdk\platforms\android-33\core-for-system-modules.jar.
         > Error while executing process C:\Program Files\Java\bin\jlink.exe with arguments {--module-path C:\Users\user\.gradle\caches\transforms-3\a716a49384427b91aa8778761f7fa6d1\transformed\output\temp\jmod --add-modules java.base --output C:\Users\user\.gradle\caches\transforms-3\a716a49384427b91aa8778761f7fa6d1\transformed\output\jdkImage --disable-plugin system-modules}

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 5s
error Failed to install the app.
info Run CLI with --verbose flag for more details.

Process finished with exit code 1

adb 버전

image.png

choco, java 버전

image.png

 

react-native 프로젝트 버전

buildscript {
    ext {
        buildToolsVersion = "33.0.0"
        minSdkVersion = 21
        compileSdkVersion = 33
        targetSdkVersion = 33

        // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
        ndkVersion = "23.1.7779620"
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle")
        classpath("com.facebook.react:react-native-gradle-plugin")
    }
}

환경변수

image.pngimage.png

안드로이드 스튜디오

image.pngimage.png

 

doctor 실행시엔 에뮬레이터가 없다고 표시되는데, 에뮬레이터 실행까진 정상적으로 됩니다. 앱 빌드시 오류가 발생하는것 같아요

Android
 ✖ Adb - No devices and/or emulators connected. Please create emulator with Android Studio or connect Android device.
 ✓ JDK - Required to compile Java code
 ✓ Android Studio - Required for building and installing your app on Android
 ✓ Android SDK - Required for building and installing your app on Android
 ✓ ANDROID_HOME - Environment variable that points to your Android SDK installation

답변 2

0

ljy014님의 프로필 이미지
ljy014
질문자

터미널이 아니라 파워셸 관리자 모드에서 실행하니까 실행됐네요

 

0

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

안녕하세요, 인프런 AI 인턴입니다. ljy014님께서 겪고 계신 문제는 React Native 프로젝트에서 Android 에뮬레이터 구동 시 발생하는 환경 설정 및 빌드 관련 문제로 보입니다. 제공된 오류 메시지와 이미지 자료를 토대로 문제를 해결하는 방법을 안내드리겠습니다.

문제 분석

현재 상황은 주로 Android 빌드 시 필요한 JDK 경로와 에뮬레이터 인식 문제와 연관이 있습니다.
1. Execution failed for task ':app:compileDebugJavaWithJavac'. 오류는 주로 JDK와 관련된 문제로 발생할 수 있습니다. OpenJDK 21을 사용 중이신데, Android 빌드를 위해 호환되는 JDK 17을 사용하는 것이 권장됩니다.

  1. Adb - No devices and/or emulators connected 오류는 adb가 에뮬레이터를 인식하지 못하고 있음을 나타냅니다.

해결 방법

  1. JDK 버전 변경:

    • Android에서는 JDK 17을 지원하므로, OpenJDK 17로 변경하시면 좋습니다. Oracle JDK나 OpenJDK 17을 설치한 후 JAVA_HOME 및 시스템의 Path 환경 변수에 JDK 17 경로를 설정하세요.
  2. ADB 연결 문제:

    • 터미널에서 adb 서버를 재시작해보세요.
     adb kill-server
     adb start-server
     adb devices
    
    • 이 명령어로 adb가 올바른 장치를 탐지하는지 확인하세요.
  3. 에뮬레이터 수동 실행:

    • 터미널에서 아래 명령어로 에뮬레이터를 수동으로 실행하고 앱을 다시 빌드해보세요.
     C:\Users\user\AppData\Local\Android\Sdk\emulator\emulator -avd Medium_Phone_API_33
    
  4. 환경 변수 확인:

    • ANDROID_HOMEPATH 환경 변수가 올바르게 설정되어 있는지 다시 확인하세요.
    • Android SDK 경로에 한글이 포함되어 있을 경우, 경로에 한글이 없는 위치로 이동하는 것이 좋습니다.
  5. Gradle 설정 확인:

    • build.gradle 파일 내의 dependency 버전들이 최신인지 확인해 보세요. compileSdkVersion, targetSdkVersion, buildToolsVersion이 SDK Manager에 설정된 버전과 일치하는지 확인하세요.

아래의 링크는 유사한 문제를 해결한 사례들입니다:
- 윈도우: react navigation 강의 듣다가 생긴 오류
- 시뮬레이터가 작동하지 않아요ㅠ

위 방법들을 적용하신 후에도 문제가 지속된다면, 추가 오류 메시지와 함께 다시 질문해 주시면 더 구체적인 도움을 드릴 수 있습니다.

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

ljy014님의 프로필 이미지

작성한 질문수

질문하기