[개발 환경 설정] Expo Go 실행 중`yarn android(= npm run android)` 에러 발생 원인은 버전이 아니라 명령어 실행 때문

헤이안나·2025년 5월 19일
0

Expo Go로 앱을 실행하려고 yarn android를 입력했는데,
다음과 같은 에러가 발생했다면:

The operation couldn’t be completed. Unable to locate a Java Runtime.

처음에는 Expo SDK 버전 업그레이드 문제인 줄 알았지만,
실제로는 npx expo run:android 명령어를 실행하면서 발생한 문제였다.

이 명령어는 프로젝트를 자동으로 bare workflow 상태로 전환(prebuild/eject)시켜,
Java나 dev client 환경 없이 실행할 수 없게 만든다.


✅ 원인 1: expo run:android 명령어 실행 → bare 상태 전환

  • expo run:android를 실행하면 android/, ios/ 폴더가 생성되며 native 환경으로 바뀜
  • 이 명령어는 dev client + Java 환경이 필요
  • Java가 설치되어 있지 않으면 위와 같은 에러 발생
  • 단순히 Expo Go에서 앱을 실행하고 싶었다면 오히려 이 명령어는 필요 없는 행동

🛠️ 현재 package.json 예시 확인

"scripts": {
  "android": "expo run:android", // ← Expo Go 불가능, Java 필요
  "start": "expo start"
}
  • 이렇게 설정되어 있으면 yarn android = expo run:android 실행
  • Java 설치 안 되어 있거나 dev client가 없다면 에러 발생

✅ 해결 방법 (Expo Go 사용자 기준)

🛠️ 방법 1: 스크립트 수정

"scripts": {
  "android": "expo start --android"
}

→ 이렇게 하면 yarn android 입력 시 Expo Go에서 바로 실행 가능
→ Java 필요 없음, 네이티브 변경도 없음

🛠️ 방법 2: npx expo start 사용

npx expo start

→ QR 코드 또는 a 눌러서 에뮬레이터에 연결
→ 가장 안정적이고 Expo Go에 최적화된 방법


✅ 요약

항목내용
에러 원인npx expo run:android 실행으로 프로젝트가 bare 상태로 전환됨
해결 방법expo start --android 또는 npx expo start 사용
조심할 점Expo Go만 쓸 거라면 절대 expo run:android 실행 금지 ❌

✅ 개발 도중 잘못된 명령어 하나가 전체 프로젝트 구조를 바꿔버릴 수 있다.
Expo Go만 쓸 땐, 정말로 필요한 명령어만 신중하게 사용하자.

profile
리액트 공부하는 사람

0개의 댓글