eatthefrog
🥸🔎 버그수정 일지 2025-02-17 본문

1차시도: [ npx expo start a 명령어의 동작 원리 ]
✅ 1. npx expo start — Expo 개발 서버 실행
- npx → 로컬에 설치된 npm 패키지를 실행하거나, 없으면 자동으로 다운로드해서 실행한다.
- expo start → Expo 개발 서버(Metro bundler)를 시작한다.
- Expo 프로젝트의 App.js (또는 index.js)를 시작 파일로 삼아 자바스크립트를 번들링한다.
- 개발 서버는 보통 localhost:19000 (Metro 번들러)와 localhost:19001 (WebSocket 연결)에 열립니다.
✅ 2. a — 안드로이드 에뮬레이터 실행
- a 플래그는 Android 에뮬레이터에서 앱을 열라는 명령어다.
- Expo는 adb (Android Debug Bridge)를 사용해서 에뮬레이터를 제어한다.
- 실행 과정:
- 1️⃣ Expo 개발 서버는 adb devices 명령으로 현재 실행 중인 에뮬레이터를 확인한다.
2️⃣ 에뮬레이터가 실행 중이면, Expo Go 앱을 열고 개발 서버에 연결한다.
3️⃣ Expo Go는 localhost:19000 (또는 LAN/IP 주소)을 통해 JavaScript 번들을 다운로드한다.
4️⃣ 에뮬레이터에서 Expo Go가 앱을 실행한다.
- 1️⃣ Expo 개발 서버는 adb devices 명령으로 현재 실행 중인 에뮬레이터를 확인한다.
✅ 3. JavaScript 번들링
- Metro 번들러가 프로젝트의 모든 자바스크립트 코드를 번들링한다.
- 번들링 속도: 100%에 도달하면 번들 완료.
- 이 번들은 에뮬레이터의 Expo Go에서 다운로드된다.
✅ 4. 앱 로드 및 Hot Reloading
- 에뮬레이터에서 Expo Go 앱은 개발 서버에 연결해 번들을 실행한다.
- 이후 코드 변경 사항이 있으면 Metro 번들러가 감지해서 Hot Reload 또는 Fast Refresh를 수행한다.
✨ 정리:
👉 npx expo start a는 Metro 번들러 시작 → 안드로이드 에뮬레이터에서 Expo Go 실행 → 번들 다운로드 → 앱 실행의 흐름으로 작동한다.
2차 시도: [문제 구체화]
adb logcat을 통한 에러 확인
👉 가장 확실한 방법은 adb logcat을 사용해서 안드로이드 로그를 보는 것이다.
✨ 명령:
adb logcat *:E
👉 이 명령으로 에러 로그만 필터링해서 볼 수 있다.
- 흔히 나오는 에러:
- Unable to load script from assets 'index.android.bundle' → 번들 파일을 찾지 못함.
- Network request failed → 에뮬레이터가 개발 서버에 연결하지 못함.
1️⃣ 이전에 EAS Build → Expo Go 대신 Standalone 앱 실행 → 충돌 발생.
2️⃣ Metro 번들러 캐시 → .expo, node_modules/.cache 정리.
3️⃣ developmentClient: true → EAS에서 개발용 클라이언트 빌드 필수.
4️⃣ adb reverse → 에뮬레이터 네트워크 재설정.
5️⃣ adb logcat → 에러 로그 확인으로 실마리 찾기.
레퍼런스
react native expo가 에뮬레이터와 연결이 안된다.
명령어로 안드로이드 앱을 빌드하고 런을 했다.그런데 다음과 같은 오류가 발생했다.우선 터미널에서 보았을 때명령어 이후에 빌드는 성공했다.그리고 이후에 위와 같은 오류가 난 것이다.그러
velog.io
https://www.reddit.com/r/reactnative/comments/1e4iq5v/expo_stuck/
From the reactnative community on Reddit
Explore this post and more from the reactnative community
www.reddit.com
'시행착오 노트' 카테고리의 다른 글
| Expo 프로젝트에서 네이티브 모듈 추가 시 겪은 시행착오와 해결 과정 (0) | 2025.03.29 |
|---|---|
| 🥸🔎 버그수정 일지 2025-02-18 (0) | 2025.02.18 |
| 오류메시지 없을때 오류 찾기 (1) Leaflet 지도와 Three.js 렌더러 간의 충돌 문제 (0) | 2025.02.12 |
| 오류 메시지 읽기(1) ELSPROBLEMS, deduped, invalid (0) | 2025.02.11 |
| nvm으로 Node 버전 여러개 사용하기 (1) | 2025.02.05 |