it-swarm-ko.com

React-Native : 응용 프로그램이 등록되지 않았습니다. 오류가 발생했습니다.

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

그런 다음 소품 자습서 를 시작하고 코드 스 니펫을 복사 한 다음 프로젝트를 다시 실행하려고 시도하고 다음과 같은 오류 메시지가 화면에 표시되었습니다.

134
Adam

나는 프로젝트와 등록 된 구성 요소의 이름이 일치하지 않아서 발생한 오류라고 생각합니다.

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

react-native init AwesomeApp

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

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

그것 이어야합니다.

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

그것을 고치려고 노력하십시오.

369

대부분의 경우 문제는 (TMUX를 사용하는 경우) 다른 터미널 또는 TMUX의 다른 탭에서 실행중인 다른 react-native start (즉 네이티브 패키지 도구에 대한 응답) 서버가 있다는 것입니다.

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

다음을 사용하여 해당 프로세스를 찾습니다.

ps aux | grep react-native

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

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

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

이렇게 MainActivity을 수정하십시오.

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

내 솔루션은 "AppDelegate.m"의 모듈 이름 변경입니다.

moduleName:@"AwesomeProject"에서

~ moduleName:@"YourNewProjectName"

14
user8637708

먼저 신청서를 작성해야합니다.

react-native start

그런 다음 응용 프로그램 이름을 registerComponent의 첫 번째 인수로 설정해야합니다.

그것은 잘 작동합니다.

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

제 경우에는 MainActivity.Java에이 줄이 있습니다.이 줄은 react-native-rename cli (NPM에서)를 사용할 때 빠졌습니다.

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

분명히 나중에 앱 이름으로 바꿔야합니다.

5
xemasiv

나에게는 같은 문제가 있었고 근본 원인은 다른 폴더에 다른 프로젝트를 생성하면서 다른 반응 네이티브 폴더 (AwesomeApp)에서 패키지 관리자를 실행 (반응 네이티브 시작)했다는 것입니다.

새 앱 디렉토리에서 패키지 도구를 실행하면 해결되었습니다.

3
la5zl0

프로젝트에서 app.json 파일을 확인하십시오. appKey 라인이 없으면 추가해야합니다.

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

나는 노드 서버가 다른 폴더에서 실행되고 있다고 생각한다. 그래서 그것을 죽이고 현재 폴더에서 실행하십시오.

실행중인 노드 서버 찾기 : -

lsof -i :8081

실행중인 노드 서버를 종료하십시오 : -

kill -9 <PID>

예 : -

kill -9 1653

현재 반응 네이티브 폴더에서 노드 서버 시작 : -

react-native run-Android

2
Arshid KV

index.Android.js/index.ios.js에 등록 해야합니다.

이렇게 :

'use strict';

import {
    AppRegistry
} from 'react-native';

import app from "./app";

AppRegistry.registerComponent('test', () => app);
1
linSir

모든 주어진 대답은 나를 위해 작동하지 않았다.

다른 노드 프로세스가 다른 터미널에서 실행 중이 었는데 명령 터미널을 닫았습니다. 모든 것이 예상대로 작동했습니다.

1
Khemraj

루트 구성 요소 이름이 소문자로 시작되기 때문일 수도 있습니다.

다시 고치거나 PascalCase 이름으로 프로젝트를 다시 만듭니다.

예 : 새로운 HelloWord 켜기

1
Venkat

이 문제는 index.js에서 Android/ios 패키지에 대해 지정한 이름과 앱의 이름을 다르게했을 때; 아마도 앱을 나왔을 때 이런 일이 일어 났을 것입니다. 따라서 AppRegistry.registerComponent('someappname', () => App)을 호출 할 때 someappname이 네이티브 패키지 또는 viceversa에도 사용되는지 확인하십시오.

1
gavri

위의 내용을 모두 읽은 후에 다른 이유가있을 수 있습니다.

나의 경우에는:

반응 네이티브 클리닉 : 2.0.1

반응 네이티브 : 0.60.4

다음 구조 :

enter image description here

먼저 Metro builder (react-native run-Android)가 빌드를 실행할 때 index.Android가 Android Studio에서 업데이트되지 않았으므로 수동으로 수행해야합니다. 또한 Android 스튜디오에서 "읽지"않습니다

app.json (index.js와 함께 기본적으로 생성되어 index.Android.js로 이름이 바 by) :

 {
    "name": "authApp",
    "displayName": "authApp"
 }

그래서 이렇게

(나의 경우에는)

import {authApp as appName} from './app.json';

Android studio에서 authApp이 무엇을 참조하는지 알지 못합니다. 문자열 이름으로 앱 이름을 참조하고 app.json에서 가져 오기를 사용하지 않는 순간 수정합니다.

AppRegistry.registerComponent('authApp', () => MyApp);
0
Carmine

나는 똑같은 문제가 있었다. Android 용 반응 형 기본 앱을 만들기 위해 Windows를 사용하면서 동일한 오류가 발생했습니다. 여기에 효과가 있습니다.

  • 루트에서 폴더 Android 로 이동하십시오.
  • 다음과 같은 이름으로 파일을 만듭니다. local.properties
  • 편집기에서 열고 다음을 작성하십시오.

sdk.dir = C :\Users\ USERNAME \AppData\Local\Android\sdk

  • USERNAME을 시스템 이름으로 바꿉니다.

저장하고 앱을 정상적으로 실행하십시오. 그것은 나를 위해 일했다.

0
Utsav Chawla

AppRegistry에서 이름을 변경하는 대신,

반응 네이티브 init 바나나를 실행하면 바나나 프로젝트에 대한 반응 보일러 플레이트 코드가 생성되고 AppRegistry.registerComponent는 자동으로 바나나를 가리 킵니다.

AppRegistry.registerComponent('Bananas', () => Bananas);
0
vipul srivastav

필자는 문제가 내 경우 (Windows 10 OS)에서 어디에 있는지 알았지 만 Linux에서도 도움이 될 수 있습니다 (시도 할 수도 있음).

windows power Shell에서, 다음 명령을 실행하여 (PC 부팅 후 처음으로) 응용 프로그램을 실행하려면,

react-native run-Android

다른 node process/JS server에서 console panel을 시작하고이 오류가 발생하지 않습니다. 그러나another app를 실행하려면mustclosethat already running이 필요합니다. _ JS server console panel. 그런 다음 power Shell에서 다른 응용 프로그램에 대해 동일한 명령을 실행하면 해당 응용 프로그램의 다른new JS 서버가 자동으로 시작되어이 오류가 발생하지 않습니다.

다른 앱을 실행하기 위해 닫고 다시 열기power Shell 할 필요가 없습니다. 다른 앱을 실행하려면닫기node console해야합니다.

0

나에게 도움이 된 솔루션이 아닙니다. 나는 다음 프로세스를 죽여야했고, 다시 반응하는 네이티브 Android를 실행해야만했습니다.

노드 ./local-cli/cli.js start

0
G. Thabit