React Native "RNSScreen" was not found in the UIManager
React Native "RNSScreen" was not found in the UIManager
react native에서 Navigation을 사용하려고 코드를 작성했는데 에러가 발생했다. 특이한건 Android 에뮬레이터에서는 에러가 발생하는데 web으로 컴파일하니까 정상적으로 동작했다.
에러내용
# Invariant Violation: requireNativeComponent: "RNSScreenStackHeaderConfig" was not found in the UIManager.
# Invariant Violation: requireNativeComponent: "RNSScreen" was not found in the UIManager
에러 관련해서 구글에 나와있는 거의 모든글에 있는 것들을 다 해봤는데도 해결되되지 않았다. 패키지 설치가 문제라는 글이 대부분이고 거기서 설치해보라는건 다 해봤다.
설치한 패키지
npm install @react-native-community/masked-view
npm install @react-navigation/native
npm install @react-navigation/stack
npm install react-native-gesture-handler
npm install react-native-reanimated
npm install react-native-safe-area-context
npm install react-native-screens
npm install pod
해결방법
정확히 어디서 에러가 발생하는 것인지 소스코드를 하나씩 지우면서 해봐도 알 수 없었다. 그런데 web에서는 동작하는거보니 아무래도 에뮬레이터에 문제가 있나해서 혹시나 하고 에뮬레이터 버전을 변경해봤다. 그랬더니 단번에 해결됐다.
에러발생 에뮬레이터 버전 : Oreo8.1 - API 27
정상동작 에뮬레이터 버전 : Pie 9.0 - API 28
개발환경이나 소스코드, 그리고 Android, iOS 에뮬레이터에 따라서 차이가 있을 수 있어서 정확한 해결방법은 아니겠지만 아무리해도 에러가 발생하는 상황이라면 한 번 에뮬레이터 버전을 변경해보길 바란다.