[javascript] 반응 네이티브 : 응용 프로그램이 등록되지 않았습니다 오류

나는 현재 React-Native 튜토리얼을 진행하고 있습니다. 시작하기 자습서로 시작하여 새로운 반응 기본 프로젝트를 만들고 장치에서 프로젝트를 성공적으로 실행할 수있었습니다.

그런 다음 Props tutorial 을 시작하고 코드 스 니펫을 복사하고 프로젝트를 다시 실행하려고 시도했으며 화면에 다음 오류 메시지가 표시되었습니다.



답변

프로젝트 이름과 등록 된 구성 요소가 일치하지 않아 오류가 발생한 것 같습니다.

하나의 이름으로 프로젝트를 시작했습니다. 즉

react-native init AwesomeApp

그러나 index.ios.js 파일에서 다른 구성 요소를 등록하십시오

AppRegistry.registerComponent('Bananas', () => Bananas);

이 때 해야

AppRegistry.registerComponent('AwesomeApp', () => Bananas);

고치십시오.


답변

대부분의 경우 문제는 react-native start다른 터미널 또는 TMUX의 다른 탭 (TMUX를 사용하는 경우)에서 다른 (즉, React Native Packager) 서버가 실행되고 있다는 것입니다.

해당 프로세스를 찾아서 닫아야하므로 react-native run-ios예를 들어 실행 한 후에 는 해당 특정 응용 프로그램에 등록 된 새로운 패키지 서버를 설정합니다.

다음을 사용하여 해당 프로세스를 찾으십시오.

ps aux | grep react-native

프로세스 ID (PID)를 찾고 kill명령 (예 :)을 사용하여 패키지 프로세스를 종료하십시오 kill -9 [PID]. launchPackager.command다른 운영 체제에 대해서는 잘 모르지만 macOS 에서 앱을 찾아야합니다 .

그런 다음 run-ios(또는 안드로이드)를 다시 실행 하십시오. 새 패키저 서버를 실행 한 후 새 경로를 볼 수 있어야합니다 (예 :

Looking for JS files in
   /Users/afshin/Desktop/awesome-app 


답변

수정 MainActivity같이,

@Override
protected String getMainComponentName() {
    return "Bananas"; // here
}


답변

내 솔루션은 “AppDelegate.m”의 모듈 이름을 변경하는 것입니다

…에서
moduleName:@"AwesomeProject"


moduleName:@"YourNewProjectName"


답변

먼저 응용 프로그램을 시작해야합니다.

react-native start

그런 다음 애플리케이션 이름을 registerComponent의 첫 번째 인수로 설정해야합니다.

잘 작동합니다.

AppRegistry.registerComponent('YourProjectName', () => YourComponentName);


답변

프로젝트에서 app.json 파일을 확인하십시오. appKey가없는 경우 추가해야합니다.

{
  "expo": {
    "sdkVersion": "27.0.0",
    "appKey": "mydojo"
  },
  "name": "mydojo",
  "displayName": "mydojo"
}


답변

내 경우에는 MainActivity.java 에이 줄이 있는데 react-native-renamecli를 사용할 때 누락되었습니다 (NPM에서)

protected String getMainComponentName() {
    return "AwesomeApp";
}

분명히 이름을 앱 이름으로 바꿔야합니다.