네이티브 버전 불일치 반응


196

새 프로젝트를 시작한 다음 Xcode 에뮬레이터를 시작할 때 다음 메시지가 표시됩니다.

반응 네이티브 버전 불일치

자바 스크립트 버전 0.50.1 기본 버전 : 0.50.0

기본 코드를 다시 작성했는지 확인하십시오. ...

아무도 여기서 무슨 일이 일어나고 있고 나를 도울 수 있습니까?

답변:


342

이것이 내가 한 일입니다.

모든 터미널을 닫고 빌드를 다시 실행하십시오.

다른 프로젝트에서 nodejs 터미널을 닫는 것을 잊어 버릴 수 있으며 다른 반응 버전을 설치했습니다.

따라서 nodejs 서버에서 가져온 코드는 기본 서버와 충돌합니다.


1
현재 열려있는 터미널을 닫고 싶지 않은 경우 (앱이 실행 중임)? 다른 해결 방법이 있습니까?
Dimitar Tsonev

1
@DimitarTsonev 당신은 react-native에 의해 열린 특정 터미널을 닫을 수 있습니다 Bundling 'index.android.js' 100.0% (1/1), done.
Val

1
build.gradle작업 에서 반응 종속성 버전을 완전히 사용하여 강제하십시오 . @Val
에게

모든 터미널을 react-native run-ios
닫고

pod installCocoapod를 사용 하는 경우 에도 실행 하십시오.
Array

36

create-react-native-app를 사용하여 반응 네이티브 앱을 만든 경우. app.json (박람회)이 있어야합니다. package.json 파일에서 박람회 버전이 일치하는지 확인하고 그에 따라 변경하십시오. 예를 들어 내 경우 문제는 app.json 파일에서 expo sdkVersion 속성에 대해 25.0.0 버전이 있고 23.0.0으로 변경하고 모든 것이 작동한다는 것입니다.

package.json :

"dependencies": {
    "expo": "^23.0.4",
    "react": "16.0.0",
    "react-native": "^0.50.4"
  }

app.json :

{
  "expo": {
    "sdkVersion": "23.0.0" // before was 25.0.0
  }
}

이것은 나를 위해 일했다! 빠른 업데이트 : 반응 형 네이티브 패키지에 직접 npm 모듈을 사용하지 않고 대신 tarball을 사용할 수 있습니다. 이 경우 반응 네이티브 상태를 사용하여 RN 버전을 확인할 수 있습니다. :)
blakeface

15

로 이동 android/app/build.gradle하여 dependencies섹션에 추가 하십시오.

dependencies{
compile ("com.facebook.react:react-native:0.50.3") { force = true } 
}

/// 반응 네이티브 버전은 package.json에 있습니다.


5
iOS

package.json의 동등한 변경 사항은 무엇입니까?
네이트 글렌

8

dependencies섹션 의 Android 앱 레벨 gradle 파일에서 기본 버전을 강제로 반응 하십시오.

compile ("com.facebook.react:react-native:0.52.0") { force = true }

나를 위해 일했다


2
이것은 나를 위해 일했습니다. 0.53.3이 있습니다. 나는 0.53.3 힘을 추가, 터미널을 다시 시작, 실행 npm start -- --reset-cache및 실행react-native run-android
Florin Dobre

6

나는 전에이 오류를 본 적이 없지만 Xcode와 React-Native가 잘 작동하지 않을 때마다 몇 가지 일을합니다. 사용중인 Xcode 버전을 확인하십시오. 업데이트가 필요하면 업데이트합니다. 그런 다음 파수꾼과 캐시를 지우는 것이 두 번째입니다. reset cache 명령을 사용하지 않습니다. 항상 캐시를 확인해야한다고 말하므로 건너 뜁니다 (그렇지만 혼란 스러울 수 있습니다). 캐시 된 빌드를 제거하기 위해 rm -rf $ TMPDIR / react- *를 사용합니다. 그래도 작동하지 않으면 Xcode에서 앱을 빌드 한 다음 반응식 네이티브 run-ios로 빌드하기 위해 거기서부터 작동합니다. 이 오류 메시지와 함께 Xcode로 빌드하려고 시도하는 것처럼 보일 수 있습니다. 도움이 되길 바랍니다. 진행 상황을 알려주세요. 행운을 빕니다! (또한 RN 0으로 업데이트 할 수 있습니다.


다른 것은 내가 엑스포로 놀았다는 것입니다. 그게 엉망인지 궁금해
Sam Rao

npm install --save react-native@0.51을 수행 할 수는 있지만 먼저 Xcode로 빌드하려고합니다. 아직 그랬어? 도움이 필요하면 알려주십시오.
Jared Nelson

6

Expo를 통해 React Native 앱을 실행하는 경우 React Native를 업그레이드하면이 오류가 발생할 수 있습니다 ( https://github.com/expo/expo/issues/923 참조 ).

이것이 당신의 시나리오라면, 당신의 옵션은 다음과 같습니다 :

  1. 범프 엑스포 ( package.json)가 React Native 버전과 호환되는 버전으로 연결되어 있습니다 ( 만약 존재하는 경우 링크 된 문제로 판단되지 않는 경우 Expo 지원은 React Native 릴리스를 추적합니다).
  2. 변경 사항을 취소하고 노드 모듈을 삭제했다가 다시 설치 하고 Expo 에서 꺼내기 (앱 꺼내기 후에도 계속 실행할 수 있는지 확인한 후) 업그레이드를 다시 시도하십시오.

Expo는 작성 당시 최대 59.8의 반응 네이티브 만 지원합니다. expo / react-native 호환성에 대해서는 docs.expo.io/versions/latest/sdk/overview/#sdk-version을 참조하십시오 (OP와 정확히 동일한 오류의 원인은 아니지만 참고와 관련이있는 것 같습니다)
Tijs Maas

6

나는이 문제를 가장 오랫동안 가지고 있었고 위의 해결책 중 어느 것도 도움이되지 못했습니다. create-react-native-app모든 버전의 Expo가 최신 React Native를 지원하는 것은 아니라는 것을 알 때까지 프로젝트 에서 반응 네이티브를 업그레이드하는 중이었습니다 .

공식적으로 지원되는 React Native, React 및 Expo의 버전 조합을 보여주는 문서에서 링크 된이 페이지를 찾았습니다.

출처: https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md

해당 버전과 일치 하도록 app.jsonpackage.json파일을 편집 하고 실행하면 npm install모든 것이 다시 작동합니다.


6

실제 장치를 사용하고 있는데,이 경우 문제가 해결되었습니다.

  1. 앱 제거
  2. lsof -i :8081
  3. kill -9 PID
  4. 앱 재 구축 ( react-native run-android또는 react-native run-ios)

lsof -i :8081iOS 시뮬레이터 에서 모든 PID를 죽이고 다시 빌드하면됩니다.
Ronan Boiteau

Rimraf node_modules, npm start -reset-cache 등을 시도했지만 아무것도 작동하지 않았습니다. 그런 다음 위와 같이 앱을 제거하고 taskkill / im node.exe 및 taskkill / f / PID (기존 PID의 마지막 단계에서 주어진 번호)를 사용한 다음 반응 네이티브 실행 안드로이드. 치료를했다!
user1641906

5

닫고 다시 빌드하여 문제를 해결할 수없는 Android 개발자의 경우 에뮬레이터 / 장치에서 앱을 수동으로 제거하십시오.


3
iOS 시뮬레이터에서 앱을 제거하면 효과적이었습니다.
negative_zero

5

build.gradle 파일에서 다음을 추가하십시오.

implementation ("com.facebook.react:react-native:0.51.0") {
    force = true;
}

0.51.0패키지의 버전으로 교체 하십시오.


4

종속성을 다시 설치하십시오. 그것은 나를 위해 일했다.

1.) yarn/npm install
2.)yarn/npm start --reset-cache


3

나에게 그것은 파일 섹션의 react-native버전 때문이었습니다 . 그것은 :dependencypackage.json

"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "~0.55.0"
}

나는 그것을 쫓았 다.

"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "0.52.0"
}

이제는 잘 작동합니다.


3

필자의 경우 iOS에서 직면하고 있으며 아래 명령을 사용하여 모든 캐시를 재설정하고 지우려고했지만 실패했습니다. 근본 원인은 우연히 어딘가에서 반응 패키지가 실행되고 있다고 말하는 많은 의견에도 불구하고 다시 시작했습니다. 내 맥과 문제는 여전히 남아 있습니다.

watchman watch-del-all && rm -rf node_modules/ && yarn cache clean && yarn install && yarn start --reset-cache

해결책은 빌드 폴더 @를 삭제 /ios/build한 다음 react-native run-ios해결 한 것입니다.


3

위의 솔루션을 시도했지만 AndroidManifest.xml에 추가하면 문제가 해결됩니다.

  android:usesCleartextTraffic="true"

1
그것은 매력처럼 작동했습니다.. 이것이 안드로이드를 절대 좋아하지 않는 이유입니다 .. 당신을 여러 시간 동안 미치게 만든 문제를 해결하는 마법의 단어가 항상 있습니다.
picacode

2

CocoaPods를 사용하는 iOS에서 동일한 문제가있는 다른 사람 :

운없이 위의 모든 솔루션을 시도했습니다. 내 프로젝트에 기본 종속성이있는 패키지가 있고 패키지 중 필요한 포드 모듈이 있습니다. 문제는 내 Podfile에 React가 지정되었지만을 사용하여 React 포드가 자동으로 업그레이드되지 않았다는 것 react-native-git-upgrade입니다.

해결 방법은을 실행하여 설치된 모든 포드를 업그레이드하는 것 cd ios && pod install입니다.


2

제 경우에는 새로운 가상 장치 설치가 도움이되었습니다. 이제 앱당 하나의 장치를 사용하고 있습니다.


2

엑스포 사용자 app.json-SDK 버전과 package.json엑스포 버전이 서로 호환 되는지 확인하십시오 .


감사합니다! 이것이 새로운 엑스포 사용자를위한 솔루션이었습니다.
재스퍼 블루스

1

또한 Expo 및 iOS Simulator를 사용 하여이 문제가 발생했습니다. 나를 위해 일한 것은 시뮬레이터를 지우는 중이었습니다.Hardware > Erase All Content and Settings...


에뮬레이터에서 Expo 앱을 제거 하여이 작업을 수행 할 수 있다고 확신합니다. 모든 것이 필요하지 않습니다.
Ajay

1

가능한 수정 :

  1. package-lock.json을 삭제하십시오.
  2. 운영: watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/haste-map-react-native-packager-* && rm -rf node_modules/&& npm install

문제가 지속되면 Xcode 에서 직접 프로젝트 를 실행하십시오.

이것은 나를 위해 일했습니다.


1

내 경우에는 (박람회 및 안드로이드 빌드를 사용하지 않음)

package.json

"dependencies": {
    "react": "16.3.1",
    "react-native": "0.55.2"
}

그리고 app.json

{
  "sdkVersion": "27"
}

문제를 해결


Expo를 사용하는 경우 특히 그렇습니다. 자세한 내용은 Expo의 업그레이드 문서를 확인하십시오. docs.expo.io/versions/latest/workflow/…
blakeface

1

WebStorm에서 React Native 앱을 빌드하고 실행하려고했지만이 문제가 발생했습니다. 나를위한 간단한 해결책은 다음과 같습니다.

watchman watch-del-all

macOS에서 watchman아직 설치하지 않은 경우 Homebrew를 사용하여 설치하십시오 .

brew install watchman

1

이전 앱이 실행중인 노드 서버를 닫지 않고 실행하려고 할 때 가끔 발생하므로 React를 다시 시작하십시오. 그렇게하려면 다음 명령을 실행하십시오.

1. To kill current processes
killall node -9 

2. To Start React  Native
react-native start 

3. Then Run android
react-native run-android

1

필자의 경우 expo버전을 수동으로 변경했습니다 . 내가 업데이트 깜빡 때문에 동일한 문제를 가지고 sdkVersion을app.json바벨 프리셋 - 엑스포 에서 package.json

실행 후 : expo r -c캐시를 지우고 앱을 시작합니다.


1

우리가 한 수정은 빌드 전에 ANDROID_HOME 및 PATH 변수가 설정되었는지 확인하는 것입니다.

먼저 아래 두 명령을 실행 한 다음 장치 용 앱을 빌드하십시오.

export ANDROID_HOME=/Users/username/MyFiles/applications/androidsdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

1

TypeScript 유형 정의가 일치하지 않을 때이 클래스를 얻었습니다.

EG react-native0.61.5 dependencies@types/react-native0.60.0devDependencies .

devDependencies를 업데이트하자마자 작동했습니다. 아무것도 다시 시작할 필요가 없었습니다.


0

이것은 수정 사항은 아니지만 제 경우에는 장치에 여러 개의 RN 앱이 설치되어 있고 실수로 잘못된 응용 프로그램 내에서 '다시로드'를 시도했습니다. (현재 두 개의 앱을 동시에 개발하고 있습니다.) 올바른 응용 프로그램인지 확인하십시오!


0

package.json (종속성-react-native)에 지정된 react-native 버전을 오류 메시지에 표시된 'Native Version'과 동일하게 변경하십시오. 그런 다음 'npm install'을 다시 실행하십시오.


package.json에 언급 된 버전으로 다운 그레이드하는 방법에 대한 아이디어가 있습니까?
HungrySoul

package.json에서 "dependencies"아래에 "react-native": "^ 0.55.0"과 같은 것이 표시되어야합니다. 해당 번호 (이 예에서는 0.55.0)를 원하는 버전으로 변경하고 "npm install"을 다시 실행하십시오.
Pnar Sbi Wer

0

안드로이드에 대한 반응 네이티브 응용 프로그램을 빌드하는 동안 동일한 문제가 발생했으며 다음을 수행했습니다.

오류 콘솔의 "JavaScript 버전 0.50.1"은 package.json파일 의 반응 기본 버전입니다 . 오류 콘솔에서 "기본 버전 0.50.0"과 동일한 버전인지 확인하십시오.

  1. 오류 콘솔에 표시되는대로 반응 네이티브 버전을 "네이티브 버전 0.50.0"으로 업데이트했습니다.
  2. 앱을 다시 빌드하십시오 react-native run-android.

0

에뮬레이터에서 Wi-Fi가 활성화되어 있는지 확인하십시오.


0

projectdir / android / app / build.gradle 열기

시험:

compile ( "com.facebook.react : react-native : 0.51.0") {force = true}

컴파일 대신 "com.facebook.react : react-native : 0.51.0"{force = true}

참조 : 링크

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.