[Expo] 안드로이드 에뮬레이터 `AppRegistry.registerComponent` wasn't called. 에러 해결 방법

Eunji Jung·2024년 3월 6일
1

Expo(react-native)

목록 보기
1/4
post-thumbnail

AppRegistry.registerComponent wasn't called. error fix

Permission Denial: requires android permission.DETECT_SCREEN_CAPTURE


문제 상황 발생

react native로 첫 앱 프로젝트를 진행하였고, expo를 사용했다.
한창 작업하다가 동시에 하던 Flutter 프로젝트의 기한이 얼마 안 남아서 부랴부랴 마무리 하고, 한 2주 후에 다시 expo를 사용할 수 있었다.

그런데 이전까지 멀쩡하게 작동하던 애가 갑자기 아래 에러를 띄우면서 작동하지 않았다.
정말 아무 일도 없다가 갑자기 발생했다.

(당시 계속 발생하던 에러...)


해결을 위한 시도

정말.. 안드로이드를 먼저 배포하기로 했는데, 심지어 내가 로그인을 맡고 있어서 여러 해결 방법을 찾아봤다. 하지만 아쉽게도.. 모두 실패했다.

  1. 안드로이드 스튜디오 및 에뮬레이터 삭제 및 초기화
  2. expo 캐시 삭제
  3. android permission에 DETECT_SCREEN_CAPTURE 추가
  4. build 시 발생하는 warning 전체 처리
  5. 안드로이드 에뮬레이터 구 버전으로 변경(작업하면서 중간에 한 번 에뮬레이터를 바꿨기 때문이다.)
  6. react-native-safe-area-context 설치
  7. expo 프로젝트 새로 생성 후 빌드

다른 건 그렇다 쳐도.. 1번이랑 7번도 안 됐을 때에는 내 노트북 자체에 문제가 있는 줄 알았다. 맥북으로 바꾼 지 얼마 되지도 않았는데..ㅠㅠ

하지만!! 우연찮게 해결하게 된다.

알고보니 정말 별 문제가 아니었다.. 바로 안드로이드 에뮬레이터를 잘못 설치한 것이었다..!


해결 방법

처음에 안드로이드 스튜디오를 세팅 했을 때, 강의를 보면서 했다. 이후부터는 따로 세팅을 신경쓰지 않았고 더 큰 화면에서 보고 싶어서 다른 에뮬레이터를 찾기로 했다.
그리고, google playstore를 지원하는 가장 최신의 에뮬레이터를 설치했다.

바로 Pixel 7 Pro, VanillaIceCream이다. 이 것까지는 문제가 되지 않는다. 문제는 저 VanillaIceCream이었다!!

에뮬레이터 생성 시 system image를 선택하도록 하는데, 아마 뭣 모르고 이걸 전부 설치해야 한다고 생각했다.. 다 설치해야만 다음 단계로 넘어갈 수 있다고..

어쩐지 하나 하나가 너무 오래 걸리더라



그래서 전부 설치 후 당연하게 아무것도 건드리지 않고 Next로 넘어갔는데, 이것 때문에 API Level이

VanillaIceCream으로 자동 배정이 된 것이다.

같이 프로젝트 하는 언니에게는 문제가 안 생겨서, 어떤 에뮬레이터를 사용하는지 물어봤고, UpsideDownCake 인 것을 확인한 후 비로소 문제를 해결할 수 있었다!

다시 잘 생각해보니 처음에 세팅했던 에뮬레이터는 Tiramisu였다. 심지어 강사님이 설명까지 해주셨던 것 같기도..ㅠㅠ 아무튼 우여곡절 끝에 해결했다!!!


마무리

문제를 해결하기 위해 스택오버플로우나 다른 영어권 사이트를 다 뒤져봤는데, 문제 발생 빈도도 적고 해결 방법도 구체적으로 나와있지 않아서 정말 애먹었었다. 심지어 공식 사이트에도 나왔던 에러였다.

Expo 홈
https://docs.expo.dev/troubleshooting/application-has-not-been-registered/

android studio에서도 babel 충돌 문제라는 글을 본 적이 있는데, 다시 검색했더니 안 나온다.. 뭐지


사실 단순한 문제여서 그런 걸지도.. 그래도 나처럼 헤메는 사람을 위해 기록을 하려고 한다!

앱 개발은 처음이어서,, 아직 뭐가 뭔지도 잘 모르겠지만 나와 같은 문제가 생겼다면 에뮬레이터 API Level을 바꿔보도록 하자 ㅎㅎ

이제부터 실행 에뮬레이터간 차이가 무엇인지도 알아봐야 할 것 같다!

0개의 댓글