[React Native] React Native 앱 빌드 중 마주친 에러 및 해결

Yoon Robin·2023년 9월 28일
0
post-thumbnail

상황 설명

RN으로 앱을 만드는 팀 프로젝트에 합류하게 되었다.
나는 지금까지 Expo Go만 사용해봤는데,
팀프로젝트로 만드는 앱은 React-Native CLI를 사용하기 때문에 초기에 설정해야 할 것들이 많았다.
다행히도 나는 작년에 JAVA로 Android Studio를 사용하여 앱을 만든 적이 있었기에 일이 비교적 적었다.
그런데 빌드 과정 중 에러를 마주쳐서 곤란했다.
이번 포스팅에서는 내가 마주친 에러와 해결한 방법을 정리할 것이다.

ℹ️ 참고한 공식 문서


⚠️ SDK location not found

에러 메시지

 * What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Could not determine the dependencies of null.
   > SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file at 'C:\Users\ 생략..

해결 방법

  1. 환경 변수 등록

    properties 파일에 sdk경로가 맞지 않아서 생기는 에러.
    ...가장 쉬운 방법은 환경 변수 등록이다.
    - 출처: [Android Studio] SDK location not found 에러 해결 방법

    나는 위의 출처를 참고하여 다음과 같이 환경 변수를 등록했다.

  • 변수 이름: ANDROID_HOME
  • 변수 값: C:\Users\본인유저명\AppData\Local\Android\Sdk

(사담: 과거에 내가 앞으로 Android Studio를 안 쓸 줄 알고 환경 변수를 삭제했었다😅 React Native로 개발할 때 Android Studio가 필요할 줄은 몰랐지...)

  1. Android 13 (Tiramisu) 설치
    그런데 환경변수 등록했으나 여전히 에러가 떴다.
    그래서 공식 문서를 유심히 봤는데 이런 내용을 발견했다.

    Android Studio installs the latest Android SDK by default. Building a React Native app with native code, however, requires the Android 13 (Tiramisu) SDK in particular
    - 출처: Android development environment 2. Install the Android SDK

    공식 문서를 읽은 후 나는 SDK Manager로 들어가 Tiramisu가 써진 걸 설치했다.

    Android Tiramisu 캡처

  1. 안드로이드 스튜디오 껐다가 다시 키고 yarn start -> 안드로이드로 실행
    이렇게 해서 SDK location not found는 해결했다.
    그런데 나는 빌드 중 또 다른 에러와 부딪혔다.

⚠️ Execution failed for task ':app:installDebug'.

에러 메시지

  • What went wrong:
    Execution failed for task ':app:installDebug'.
    com.android.builder.testing.api.DeviceException: No online devices found.

해결 방법

1) Android Studio를 켜서 AVD Manager로 이동한다.
2) 애뮬레이터를 선택해 Cold Boot Now를 누른다.
3) 애뮬레이터가 모두 켜진후 yarn start -> 안드로이드로 실행

참고: [RN 에러노트] Execution failed for task ':app:installDebug' ...Can't find service: package

이 방법을 따라했더니 해결되었다!


느낀 점

지금까지는 백지 상태에서 시작하는 개인 프로젝트만 해왔다.
그래서 환경 설정이나 빌드 문제로 애먹은 적이 없었다.

그런데 팀 프로젝트를 하니 이런 애로사항에 부딪혀서 느낌이 새로웠다.
동시에 실무에서도 이런 상황이 많을 것이란 생각이 들었다.
이래서 현업자들이 팀프로젝트 경험이 있는 지원자를 원하는구나...

profile
신입 프론트엔드 개발자

0개의 댓글