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 환경 없이 실행할 수 없게 만든다.
expo run:android
명령어 실행 → bare 상태 전환expo run:android
를 실행하면 android/
, ios/
폴더가 생성되며 native 환경으로 바뀜package.json
예시 확인"scripts": {
"android": "expo run:android", // ← Expo Go 불가능, Java 필요
"start": "expo start"
}
yarn android
= expo run:android
실행"scripts": {
"android": "expo start --android"
}
→ 이렇게 하면 yarn android
입력 시 Expo Go에서 바로 실행 가능
→ Java 필요 없음, 네이티브 변경도 없음
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만 쓸 땐, 정말로 필요한 명령어만 신중하게 사용하자.