react native - 사용법 - 네트워크 응답 시간 초과 오류(create-react-native-app)(expo)




xde (8)

안드로이드에서 엑스포 앱에 대한 create-react-native-app를 실행하려고합니다.

첫째, 나는 명령을 작성하여 프로젝트를 만들었습니다.

create-react-native-app 테스트

그 때 나는 실행했다.

오후 시작

그런 다음 엑스포 앱에서 qr 코드를 스캔했습니다.

그러나 QR 코드를 스캔 한 후에 다음 오류가 발생합니다.

Uncaught Error: Java.net,sockettimeoutException: failed to connect to after 10000ms

Github 문제 :

https://github.com/react-community/create-react-native-app/issues/144#issuecomment-296631692


  1. 기기에서 : 엑스포 앱에 로그인하고 계정이없는 경우 계정을 만드십시오.
  2. 당신 시스템에서 : 열린 터미널은 cd 명령을 통해 프로젝트 디렉토리로 이동 한 다음 sudo exp start 를 입력하면 sudo exp start 합니다. 이렇게하면 expo 계정 로그인 정보를 묻습니다.
  3. 스캔 할 qr 코드를 제공합니다.

Windows에서

  1. 명령 프롬프트에서 ipconfig 를 실행하십시오.

  2. ip4 주소를 가져 와서 복사하십시오.

~보다

  1. 이 PC> 속성> 고급 시스템 설정> 환경 변수
  2. 다음 시스템 변수를 추가하십시오. REACT_NATIVE_PACKAGER_HOSTNAME
  3. 변수 값으로 ip4를 붙여 넣어야했습니다.

다음 npm start 실행 그것은 나를 위해 일합니다.


개발을 위해 git bash를 사용하고 있다면 Icruz4의이 솔루션이 도움이 될 것입니다.

대신에

set REACT_NATIVE_PACKAGER_HOSTNAME

용도:

export REACT_NATIVE_PACKAGER_HOSTNAME='192.168.1.123'

노트 :

너가 달릴 때

npm start

엑스포는 사용중인 IP를 출력합니다. 해당 IP가 원하는 IP가 아닌 경우

REACT_NATIVE_PACKAGER_HOSTNAME

환경 변수가 올바르게 설정되지 않았습니다.


나는 네이티브 반응을위한 엑스포 어플리케이션을 설치할 것을 제안합니다, 공식 가이드 링크는 여기에 있습니다.

npm install -g exp

그런 다음 Genymotion 소프트웨어를 사용하여 실행 환경에 맞게 다양한 환경 설정을 에뮬레이션 할 수 있습니다.

exp start

네이티브 반응으로 "npm start"터미널을 사용할 경우 다음이 적합합니다. 내 응용 프로그램이 성공적으로 실행되면 터미널에 표시되고 엑스포 앱에있는 내 컴퓨터의 IPV 주소가 동일 함을 알게되었습니다. 예를 들면 다음과 같습니다.

ipconfig -> IPv4 Address. . . . . . . . . . . : 10.0.0.124
exp://10.0.0.124:19000

이 관찰을 바탕으로 다음과 같은 방법으로이 문제를 해결했습니다.

  1. 앱을 실행중인 npm 프롬프트 스크립트를 닫습니다.
  2. 엑스포 앱 닫기
  3. 터미널에서 명령을 실행하여 IP를 찾으십시오.

    ipconfig
    
  4. IP로 NodeJS 명령 프롬프트에서 명령을 실행하십시오 (예 : 10.0.0.124).

    set REACT_NATIVE_PACKAGER_HOSTNAME=10.0.0.124
    
  5. 엑스포 앱 시작, 바코드 스캔

    npm start
    

    도움이되지 않는다면 다른 적절한 노력 이외에 React 개발자가 권장하는 다음 단계를 사용하십시오.

  6. VirtualBox로 Genymotion 설치하기
  7. Genymotion 사이트의 Signup
  8. 실행 Genymotion 소프트웨어와 !!! 로그인

랩톱의 IP 주소를 고정 IP로 고정하여이를 해결할 수 있습니다. 192.168.1.69라고 가정 해 봅니다. 그런 다음 랩톱의 동일한 IP 주소로 랩톱을 변경해야합니다.

set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Windows)
REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Mac & Linux)

프로젝트를 다시 시작하면 잘 할 수 있습니다.


이 문제는 다음과 같은 방법으로 해결할 수 있습니다.

다른 방법으로 환경 변수 설정하기

또는

네트워크 어댑터의 인터페이스 매트릭스 우선 순위 할당 github.com/react-community/create-react-native-app/issues/… 또는 여기에 자세한 지침이 github.com/react-community/create-react-native-app/issues/… 있습니다 .

또는

우분투 컴퓨터가 포트를 열 수 없습니다.

변경 한 후에는 작동하는지 테스트하기 전에 컴퓨터를 다시 시작하십시오.

행운을 빕니다!


필자의 경우 방화벽 설정만으로는 작동하지 않았습니다. 내 문제는 VirtualBox 네트워크 장치가 우선 순위 였고 엑스포 호스트가 잘못된 네트워크에서 시작하고 있다는 것이 었습니다.

Windows에서 ipconfig 를 실행하고 가지고있는 네트워크 어댑터를 볼 수 있습니다. npm / yarn start 는 그 목록에서 처음 나타나는 모든 것을 취하는 것 같습니다.

나는 이것에 관해서 여기에서 알았다 : https://github.com/react-community/create-react-native-app/issues/60

목록에 다른 네트워크 어댑터가 필요하지 않으면 제어판의 네트워크 연결 인터페이스에서 해당 네트워크 어댑터를 비활성화 할 수 있습니다.

이러한 연결을 사용 하고 Expo가 작동해야하는 경우이 프로세스를 따라 문제를 해결하려면 다음을 수행 하십시오 .

  1. 제어판> 네트워크 및 인터넷> 네트워크 연결로 이동하십시오.
  2. 원하는 연결 (높은 우선 순위 연결)을 마우스 오른쪽 단추로 클릭하십시오.
  3. 속성> 인터넷 프로토콜 버전 4를 클릭하십시오.
  4. 속성> 고급을 클릭하십시오.
  5. '자동 측정 항목'의 선택을 취소하십시오.
  6. '인터페이스 지표'에 10을 입력하십시오.
  7. 확인을 클릭하십시오.

낮은 우선 순위 연결에 대해 반복하지만 이번에는 'Interface Metric'에 20을 입력합니다.

이제 우선 순위가 높은 연결을 기본값으로 사용하게됩니다.


우선, 사용되지 않는 네트워크 연결을 해제하십시오. 제 경우에는 버추얼 박스였습니다. 같은 포트를 사용하고있을 수도 있습니다. 나는 그것에 대해 확신하지 못한다. 사용하지 않는 연결을 해제 한 후 패키지 관리자를 다시 시작하십시오. npm을 사용한 경우 다음을 입력하십시오.

npm start