React native : Android 프로젝트를 찾을 수 없습니다. 반응 네이티브 Android를 먼저 실행 하시겠습니까?


89

이전에 잘 작동하던 React-Native 프로젝트에 문제가 있었지만 갑자기 작동이 중지되었습니다. 명령을 사용할 때마다 :

react-native run-android

나는 점점 한 오류를 :

Android 프로젝트를 찾을 수 없습니다. 반응 네이티브 Android를 먼저 실행 하시겠습니까?

나는 달리기를 시도했다 .

react-native android

그러나 그것은 말했다 :

Unrecognized command 'android' Run react-native --help to see list of all available commands

시도 후 :

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native eject

반환 된 오류는 다음과 같습니다.

D : \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms)에서 심볼릭 링크 폴더 검색 프로젝트 이름을 정의하려면 구성 파일 name에서 앱 을 정의해야합니다 app.json. 공백이나 대시를 포함하지 않아야합니다.

다음은 app.json 파일입니다.

{
  "expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

1
루트 지시문에 android 폴더가 없으면 react-native eject를 실행하십시오.
Khurshid Ansari

1
@Khurshid Ansari 솔루션이 작동하지 않았습니다. 오류가 발생하기 때문입니다. 이름이 정의 된 경우에도 "앱 이름을 app.json 구성 파일에 정의하여 프로젝트 이름을 정의해야합니다". 업데이트 된 질문을 참조하십시오.
Abhinav Saxena

답변:


155

나는이 질문을 제기하고 비슷한 문제에 직면 한 다른 사람들에게 도움이 될 것이라고 생각하면서 스스로 대답했습니다. 터미널에 표시된 오류가 정확하지 않았기 때문에 그 뒤에 진짜 이유를 찾기 위해 많은 노력을 기울였습니다.

문제를 해결하려면 react-native 패키지를 업그레이드하세요.

  1. 프로젝트 루트로 이동 합니다 .

  2. 다음 을 입력 하여 명령 프롬프트 에서 React 네이티브 패키지를 업그레이드합니다 .

    react-native upgrade.

  3. 다음을 입력하여 모든 파일을 업데이트 수락 y (Yes)에서 명령 프롬프트 .

참조 : https://github.com/facebook/react-native/issues/9312


9
일을 저장했습니다 :)
Muhammad

React 네이티브 패키지는 어디에 있습니까? 명확한 단계를 작성하십시오
Lutaaya Huzaifah Idris

@LutaayaHuzaifahIdris 답변에서 언급했듯이 반응 네이티브 패키지는 프로젝트 루트에서 업그레이드 할 수 있습니다. 따라서 명령 프롬프트를 열고 프로젝트 루트로 이동하십시오. 그런 다음 react 네이티브 패키지를 업그레이드합니다.
udai

내가 원하지 않는 업그레이드 된 반응 네이티브입니다.
Khurshid Ansari

내 작업 솔루션은 다음과 같습니다. 위의 어느 것도 나에게 적합하지 않습니다. : 1. Android Studio에서 AVD 관리자를 열고 가상 장치를 실행합니다 (나중에 AS를 닫을 수 있음). 2. 프로젝트 폴더에 CMD를 입력하고 'expo start'를 입력합니다. 3. 엑스포가 시작되면 "을 눌러 안드로이드 에뮬레이터에 대해"그것은 가상 장치에 엑스포를 설치하고 거기에서 테스트 할 수 있습니다 옵션이 선택
폴 Gwamanda을

23

나는 그것이 오래된 질문이라는 것을 알고 있지만 그 해결책 중 어느 것도 저에게 효과가 없었으며 아마도 저와 같은 다른 사람들이있을 것입니다. 전에이 명령을 실행하는 문제를 해결했습니다.run-android

react-native eject

1
어떤 이유에서인지 이것이 저에게도 트릭을주었습니다. "react-native-git-upgrade"를 사용하여 "react-native-git-upgrade"를 사용하여 최신 버전의 react-native upgrade를 시도해 보았습니다.
Zaid Qureshi

2
이 명령을 다시 안드로이드 만들고 IOS는 프로젝트의 폴더
쿠르 안사리에게

1
이것이 올바른 대답이라고 생각합니다. 그것은 나를 위해 일했기 때문일뿐만 아니라 문서에서 이해했기 때문에 이것은 의도 된 방법이므로 다른 부작용이 없습니다.
Daan

8
eject명령이 제거되었습니다 에서 react-native.
Phantom Watson

17

React Native Project Root Directory를 열고 android-> app-> build-> mediums-> signing_config-> debug-> out-> signing-config.json을 찾습니다. signing-config.json 삭제이 파일을 다시 시도하십시오

또는

1) 때로는 이전 버전의 반응 네이티브가 있고 새로 설치된 패키지 중 일부가 이전 버전을 지원하지 않는 경우가 있습니다. 그런 다음 react-native upgrade 명령을 사용하여 react 네이티브 프로젝트를 업데이트해야합니다.

  1. 현재 프로젝트를 새 버전으로 업데이트 한 후이 오류가 해결되어야합니다.

9

명령을 사용하여 프로젝트를 시작해야합니다 (비 expo) :

react-native init <your-project-name>

기존 폴더 인 경우 다음을 따르십시오.

반응 네이티브 꺼내기


react-native의 최신 버전에서이 제안은 명령을 실행하려고 할 때 제공됩니다.

react-native eject

D : \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms)에서 심볼릭 링크 폴더 검색 프로젝트 이름을 정의하려면 구성 파일 name에서 앱 을 정의해야합니다 app.json. 공백이나 대시를 포함하지 않아야합니다.

이제 다음 명령을 실행할 때 :

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native upgrade

다음이 표시됩니다.

D : \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56ms)에서 심볼릭 링크를위한 폴더 검색 Git 기반의 새로운 업그레이드 도구 사용을 고려해야합니다. 대부분의 충돌을 자동으로 해결하여 업그레이드를 더 쉽게 만듭니다. 사용 방법 :-이전 버전의 React Native로 돌아 가기- "npm install -g react-native-git-upgrade"실행- "react-native-git-upgrade"실행 https://facebook.github.io 참조 /react-native/docs/upgrading.html "package.json"의 react-native 버전이 "node_modules"에 설치된 버전과 일치하지 않습니다. 이 문제를 해결하려면 "npm install"을 실행하십시오. 중단합니다.

Facebook 반응 네이티브 명령 제안에는 명확한 솔루션이 있습니다.

이 명령은 현재 버전과 업데이트가 필요한지 여부를 확인합니다.

또 다른 해결책 :

react-native : 명령을 run-android인식 할 수 없습니다. npm 설치로 인한 것일 수 있습니다.

참조하십시오 :

"Expo : 모듈 LogReporter를 찾을 수 없음"에 대한 솔루션


나를 위해 받아 들인 대답, +10 rep. to @Abhinav
Saeed

8

나는 이렇게했다 ... 일했다 !!

  1. CMD 프로젝트 루트에서 반응 네이티브 업그레이드 실행 합니다.
  2. 여전히 문제가 발생 하면 package.json의 종속성 json에 react-native있는지 확인하십시오. 하고 그렇지 않은 경우 추가하십시오.
  3. 여전히 문제가 발생하면 react-native -v를 사용하여 cmd에서 react native의 버전을 가져오고 cmd와 package.json에서 반환 된 값이 동일한 지 확인합니다. cmd에 반환 된 값으로 package.json을 업데이트합니다.

여기 내 문제가 해결되었습니다.


5

관리자 권한으로 명령 프롬프트를 열고 프로젝트 폴더로 이동하여 android (npx react-native run-android)를 실행합니다.


3

Android 폴더의 파일이 gradlewgradlew.bat 이기 때문에이 문제가 발생 했습니다. (각각 UN * X 용 Gradle 시작 스크립트, Windows 용 Gradle 시작 스크립트)의 파일이 전역 .gitignore 파일에 들어 와서 로컬 환경에 표시되지 했습니다.

실제로 react-native upgrade 명령을 실행하면 해당 파일이 복원되어 문제가 해결됩니다.



2

다음과 같이 프로젝트를 시작한 경우

npm install -g create-react-native-app
create-react-native-app MyReactNative
npm install -g react-native-cli
npm start

그 후, 위의 문제 언급에 직면 할 수 있으므로 해결책은 다음과 같습니다.

npm run eject

2

나는 오늘이 문제에 직면했고 해결책 중 어느 것도 저에게 효과가 없었기 때문에 다른 해결책을 찾았습니다.

형식이 잘못된 AndroidManifest.xml로 인해이 문제가 발생합니다 . 아마도 오늘 저처럼 스플래시 화면을 설정하고 AndroidManifest를 올바른 방식으로 형식화하지 않았을 것입니다.


1

여기서 app.json에는 이름이 없지만 expo 관련 구성이 있습니다. 따라서 app.json에 이름 및 표시 이름 필드를 추가하기 만하면됩니다.

app.json (처음 두 줄) :

{
"name": "AwesomeProject",
"displayName": "Awesome Project",
"expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

그 후 다음을 실행하십시오.

$ 반응 네이티브 꺼내기

info iOS 폴더 생성.

info Android 폴더 생성.

반응 네이티브 업그레이드를 할 필요가 없습니다.


실제로 "expo eject"도 더 잘 작동합니다. 그것은 나에게 옵션을 제공하고 app.json을 업데이트하고 android / ios 디렉토리를 만들었습니다.
hp2017 19

1

파일을 제거하십시오 : React Native Project Root Directory 및 android-> app-> build-> intermediates-> signing_config-> debug-> out-> signing-config.json.


1

Windows에서 관리자로 터미널을 실행하면 나에게 트릭이 생겼습니다. 다른 솔루션은 작동하지 않았습니다.


카르 틱 마노의 기존 답변 덕분에 그치지 않나요? 그렇지 않은 경우이 답변이 제공하는 추가 통찰력을 더 분명히하십시오.
Yunnosch

1

저는 Android Studio (비 엑스포)를 사용하고 있으며 이것이 저에게 효과적입니다.

react-native init <your-project-name>

1

관리자 권한으로 cmd를 실행해야합니다. 그것은 저에게 동일한 문제를 해결했습니다. "꺼내기"또는 다른 작업을 수행하지 않았습니다.


동일한 질문에 대해 유사한 답변이 많이 있습니다. 답변을 추가하는 대신 기존 답변이 도움이된다면 찬성 할 수 있습니다.
Deepak Terse

1

React Native Project Root Directory를 열고 android-> app-> build-> mediums-> signing_config-> debug-> out-> signing-config.json을 찾습니다.

파일을 삭제하고 다시 시도하십시오.



0

내 작업 솔루션은 아래에 있으며 위의 어느 것도 나를 위해 일하지 않았습니다.

프로젝트 폴더에 CD를 넣고 expo start --android를 입력합니다.

또는 먼 길 :

  1. Android Studio에서 AVD 관리자를 열고 가상 기기를 실행합니다 (나중에 AS를 닫을 수 있음).
  2. CMD를 프로젝트 폴더에 넣고 'expo start'를 입력하십시오.
  3. Expo가 시작되면 "Press a for Android emulator"옵션 2를 선택합니다.

가상 장치에 엑스포를 설치하고 거기에서 테스트 할 수 있습니다.


0

실행했을 react-native eject때이 오류가 발생했습니다.

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • MyProject/android폴더를 삭제하십시오 .
  • 실행 react-native eject하면 android폴더가 생성되었습니다.

  • 그런 다음 실행 react-native run-android하여 Android를 빌드하십시오.




0

너무 늦었을 수 Android있습니다. 백업 파일에서 폴더를 교체했습니다 . 그것은 나를 위해 일했습니다.


0

다음을 사용하여 java.exe의 모든 인스턴스를 종료하여 문제를 해결했습니다 taskkill /f /im java.exe.


0

프로젝트에서 동일한 오류가 발생했습니다 (React Native CLI로 생성됨).

여기에 이미지 설명 입력

내 안드로이드 매니페스트 파일 (android / app / src / main / AndroidManifest.xml)에 구문 오류가 있음이 밝혀졌습니다.


0

제 경우에는 Sudo를 추가하는 것을 잊었습니다. 다음과 같이 수정되었습니다.

sudo npx react-native run-android

0

signing-config.json 삭제 다음에 react-native run-android 다시 시도

signing-config.json 파일 경로 : android-> app-> build-> mediums-> signing_config-> debug-> out-> signing-config.json


0

한 가지 더 간단한 점은 이전에 관리자 역할로 react-native run-android를 실행 한 경우와 같이 이전에 사용자의 다른 역할로 프로젝트를 실행했는지 여부입니다.


0

반응 네이티브 Android를 삭제 build folder한 다음 명령을 다시 시도하십시오.npx react-native run-android


0

제 경우에는 프로젝트 폴더에 대한 올바른 권한이 없었습니다.

이 경우 폴더> 속성> 보안> 고급에서 오른쪽 버튼을 클릭 한 다음 하위 폴더를 포함하여 폴더의 소유권을 사용자로 변경하십시오. 그래야 해

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