ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Bug Fix] Expo 환경에서 먹통인 안드로이드 애뮬레이터 문제
    Front-end 개발/FE 버그 2025. 9. 5. 19:50

     

    React Native를 Expo 환경에서 개발하던 중 잘 동작하던 에뮬레이터가 먹통이 됐다. 수정된 결과를 보기 위해 reload를 했으나 안드로이드 에뮬레이터가 완전 멈춰서 동작하지 않는다. 실행 중인 앱을 내리고 홈으로 이동하는 버튼도 동작하지 않는다. 다시 npm run android를 통해 재시작을 해도 상황이 해결되지 않아 아래 접근방법으로 문제를 해결본다. (결론적으로 접근방법 2가 해답이었다.)

     

    에러 메시지

    Error: It took too long to start the Android emulator: Pixel_7. You can try starting the emulator manually from the terminal with: C:\Users\jasin\AppData\Local\Android\Sdk/emulator/emulator @Pixel_7

     

    접근방법 1. 안드로이드 에뮬레이터 캐시를 제거하고 다시 실행


     

    실행 순서

    1. 실행 중인 에뮬레이터 종료
    2. 에뮬레이터 캐시 제거
    3. Expo 캐시 제거
    4. 에뮬레이터 재시작

    이제 단계별로 터미널 명령어를 실행해보자.

     

    1) 실행 중인 에뮬레이터 종료

    adb kill-server // 에뮬레이터 종료
    
    adb devices // 에뮬레이터 상태 확인
    taskkill //F //IM emulator.exe // 에뮬레이터 완전 종료

     

    2) Windows 환경에서 에뮬레이터 캐시 제거

    rm -rf "$HOME/.android/avd/Pixel_7.avd/userdata-qemu.img*"
    rm -rf "$HOME/.android/avd/Pixel_7.avd/snapshots"

     

    3) Expo 및 Metro 캐시 제거

    npx expo start --clear --reset-cache

     

    참고

    # 캐시 완전 제거 + 새 빌드
    npx expo start --clear --reset-cache
    
    # Development client로 실행 (스냅샷 무시)
    npx expo start --dev-client --clear
    
    # 안드로이드에서 스냅샷 비활성화
    npx expo start --android --no-dev --minify
    
    # 에뮬레이터 스냅샷 비활성화
    emulator -avd Pixel_7 -no-snapshot-load -no-snapshot-save

     

    4) 에뮬레이터 재시작

    npm run android

     

    문제가 해결되지 않아서 다음 접근방법으로 넘어간다.

     

    접근방법 2. SDK 업데이트


    안드로드 스튜디오를 열어서 SDK 부분을 열었더니 Update Available 항목이 있어서 해당 부분들을 체크하고 apply 해준다.

    Update Available 항목 체크

     

    업데이트를 한 이후에는 다시 정상적으로 빌드가 된다. 문제의 원인은 Android Studio SDK 업데이트가 필요했던 것 같다. 첫번째 접근방법이 해결방법은 아니었지만, 애뮬레이터 캐시 제거가 필요한 경우 사용할 수 있겠다.

     

    접근방법 3. 패키지 재설치


    node와 npm 버전 문제로 새로운 LTS 버전으로 업데이트 한 뒤 발생한 에러이다. 이러한 경우 expo 라이브러리 버전이 꼬였을 수 있으므로 설치된 패키지를 제거하고 다시 설치한다.

    애뮬레이터 에러

    아래 명령어를 순서대로 실행해준다.

    // npm 캐시 비우기
    npm cache clean --force
    
    // node_moduels 폴더 제거
    rm -rf node_modules
    
    // expo 설치
    npm install expo@[버전]
    
    // expo 명령어로 의존성 패키지 설치
    npx expo install --fix

     

    접근방법 4. 애뮬레이터 데이터 지우기

    애뮬레이터가 먹통이 되어 아무런 응답 없고, 터미널도 멈춘 상황. 이런 경우 애뮬레이터의 설치된 애플리케이션 데이터를 지우고 다시 수동으로 eas build를 수행하는 것이 답이다.

     

    1) 애뮬레이터에 설치된 애플리케이션 데이터 제거

    Android Studio > More Actions > 애뮬레이터의 더보기(햄버거) 버튼 > Wipe Date 클릭.

    애뮬레이터에 설치된 앱 데이터 제거

    2) 프로젝트 수동 재설치 및 실행

    // eas 수동 빌드
    eas build --platform=android --profile development
    
    // 실행
    npm run android
Designed by Tistory.