본문 바로가기

Framework & Library/React-native

requirenativecomponent "RNSScreen" was not found in the uimanager [error]

 

 그래.. 이렇게 쉬우면 android가 아니지

테스트를 위해 debug 버전으로 뽑은 aab는

어플 출시용이 아니기때문에,

릴리즈 버전으로 신나게 최종 aab를 뽑다가...

에러를 만났다 (그리고 이 문제들을 해결하기까지 몇일이 걸리게 되는데ㅔㅔ)

 

내가 만난 에러들

---> 해결 방식에 따라 묶음

requirenativecomponent "RNSScreen" was not found in the uimanager

"이부분만"  바뀌어서 나는 위의 에러의 경우엔,

본인 프로젝트 파일의

android/app/src/main/java/com/<project_name>/MainActivity.java 에서

import 문과,

packages 부분을 적절하게 추가해주면 해결 된다ㅏㅏㅏ

--> 추가 하기 전에 본인의 에러 메시지 문구와,
프로젝트의 package.json 에 사용한 라이브러리들을 확인하자!


1. 프로젝트에서 react-native-reanimated 를 쓰는 경우,

상단에 아래의 코드 추가

import com.swmansion.reanimated.ReanimatedPackage;

 

( 아래의 코드는 본인의 getPackages() 가 쓰여진 방법에 따라 다를 수 있다ㅏㅏ)

getPackages() 함수 내에 아래의 코드 추가
packages.add(new ReanimatedPackage());

 

2. 프로젝트에서 react-native-gesture-handler 를 쓰는 경우,

상단에 아래의 코드 추가

import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;



(아래의 코드는 본인의 getPackages()가 쓰여진 방법에 따라 다를 수 있다ㅏㅏ)

getPackages() 함수 내에 아래의 코드 추가
packages.add(new RNGestureHandlerPackage());​

 

... 글이 길어지는 것 같아 완성된 MainApplication.java 파일을 예시로 올린다ㅏㅏ

import com.swmansion.reanimated.ReanimatedPackage;
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
import com.swmansion.rnscreens.RNScreensPackage; // react-native-screens 사용시
import com.th3rdwave.safeareacontext.SafeAreaContextPackage; // react-native-safe-area-view 사용시


public class MainApplication extends Application implements ReactApplication {
	...
     @Override
        protected List<ReactPackage> getPackages() {
          @SuppressWarnings("UnnecessaryLocalVariable")
          List<ReactPackage> packages = new PackageList(this).getPackages();
          
          // 여기에 코드 추가
          packages.add(new ReanimatedPackage());
          packages.add(new RNGestureHandlerPackage());
          packages.add(new RNScreensPackage());
          packages.add(new SafeAreaContextPackage());
          
          return packages;
          }
}
 

 MainActivity.java와 같은 설정파일들은 고치고 나서, cd android, gradlew clean 필수! 

 

이제, 다음 에러를 고쳐보자 ^^*


 

출처 : 

https://github.com/microsoft/react-native-windows/issues/7566

 

requirenativecomponent "RNSScreen" was not found in the uimanager · Issue #7566 · microsoft/react-native-windows

Environment Run the following in your terminal and copy the results here. npx react-native --version: npx react-native info: PS C:\Users\axund\Desktop\Lombard> npx react-native --version 5.0.1-a...

github.com