source

스크립트를 로드할 수 없습니다.Metro 서버를 실행 중이거나 번들 'index.android'인지 확인합니다.bundle'은 릴리즈용으로 올바르게 패키지화되어 있습니다.

lovecheck 2023. 3. 8. 21:18
반응형

스크립트를 로드할 수 없습니다.Metro 서버를 실행 중이거나 번들 'index.android'인지 확인합니다.bundle'은 릴리즈용으로 올바르게 패키지화되어 있습니다.

react-native run-android명령어는 Android 시뮬레이터에 메시지를 남기면서 종료됩니다.츠키다

스크립트를 로드할 수 없습니다.Metro 서버를 실행 중이거나 번들 'index.android'인지 확인합니다.bundle'은 릴리즈용으로 올바르게 패키지화되어 있습니다.

스크린샷

내가 뭘 잘못하고 있지?

아직 번들러를 시작하지 않았군요. 실행합니다.npm start ★★★★★★★★★★★★★★★★★」react-native start에서 ' 디렉토리'보다 먼저 검색해 주세요.react-native run-android.

다음의 스텝이 도움이 됩니다.

순서 1: Android/app/src/main/assets에 디렉토리 작성

Linux 명령어:mkdir android/app/src/main/assets

순서 2: 이름 변경index.android.js 내)에서 ('루트 디렉토리'로)index.js(이 경우 이름을 변경할 필요가 없는 파일이 있을있습니다)다음 명령을 실행합니다.

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

순서 3: APK 구축:react-native run-android

최신 버전의 index.js를 사용하십시오.

즐기세요 :)

모든 것이 올바르게 설정되어 있는 경우는, 다음과 같이 시험해 주세요.

adb reverse tcp:8081 tcp:8081

왜요?

RN 패키지가 실행 중일 때 브라우저 127.0.0.1:8081에 액세스 가능한 활성 웹 서버가 있습니다.이 서버에서 애플리케이션을 위한 JS 번들이 제공되고 변경 시 새로 고쳐집니다.역방향 프록시가 없으면 전화기는 해당 주소에 연결할 수 없습니다.

모든 크레딧은 Swingline0으로 이동합니다.

저도 비슷한 문제가 있었어요.
McAfee 8081 mc mc mc mc 。이걸 알아내는데 몇 시간이나 걸렸어

실행 시도:

react-native run-android --port=1234

앱이 에뮬레이터에 오류와 함께 나타나면 개발 설정(+)CtrlM으로 이동합니다.

"디바이스용 디버그 서버 호스트 및 포트"를 "localhost:1234"로 변경합니다.

앱을 닫고 앱 드로어에서 시작합니다.

이 에러는 리액트 네이티브 업그레이드로 인해 발생하였습니다.

Android 9.0(API 레벨 28)부터는 클리어 텍스트 지원이 기본적으로 비활성화되어 있습니다.

아웃 했을 는, 매니페스트 「diff」를 가 있습니다.android/app/src/debug/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
</manifest>

상세한 것에 대하여는, https://stackoverflow.com/a/50834600/1713216 를 참조해 주세요.

https://react-native-community.github.io/upgrade-helper/

다음을 시도할 수 있습니다.

AndroidManifest.xml에 이 행을 추가합니다.

<application
[...]
android:usesCleartextTraffic="true"
/>
[...]
</application>

편집: 주의하세요.false합니다.

3개의 스플래시만 추가합니다.node_slash-config\src\src\slash\slash.dlash

이 부품을 교환해 주세요.

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

먼저 4단계와 5단계를 수행한 후 프로젝트를 실행할 수 있습니다.(스텝 4와 5에서) 결과를 얻을 수 없는 경우는, 다음의 순서를 실행합니다.

1- 노드 버전 다운그레이드를 시도합니다(현재 버전은12.13.1)

  choco uninstall nodejs
  choco install nodejs --version 12.8

2-npm 모듈의 경로 추가(C:\Users\your user name\AppData\Roaming\npm)로

3- 명령어를 사용하여 글로벌하게 대응 설치

  npm install -g react-native-cli

4- 프로젝트 디렉토리의 루트로 이동하여 다음 명령을 실행합니다.

  react-native start

5 - 프로젝트의 루트에 있는 다른 터미널을 열고 다음 명령을 실행합니다.

   react-native run-android 

편집:

Genymotion을 사용하고 있습니까?○ 의 경우는, 다음의 순서를 실행합니다.

위의 절차 후에 다음 오류가 발생할 경우?

error Failed to launch emulator. Reason: No emulators found as an output of `emulator -list-avds`.

genymotion을 열고 다음으로 이동합니다.

genymotion -> -> -> -> 를 선택합니다(참조 버튼을 클릭하여 sdk 위치를 찾습니다).

마지막으로, 당신의 프로젝트를 다시 실행합니다.

제 경우 에뮬레이터의 와이파이 및 모바일 데이터가 꺼져 있었습니다.

[빠른 답변]

작업 공간에서 이 문제를 해결하려고 노력한 끝에 해결책을 찾았습니다.

이 오류는 NPM과 노드버전의 일부 조합을 사용하는 Metro에 문제가 있기 때문입니다.

다음 두 가지 선택지가 있습니다.

  • 대안 1:npm 및 노드버전을 업데이트 또는 다운그레이드 합니다.
  • 대체 2: 다음 파일로 이동합니다.\node_modules\metro-config\src\defaults\blacklist.js다음 코드를 변경합니다.

    var sharedBlacklist = [
      /node_modules[/\\]react[/\\]dist[/\\].*/,
      /website\/node_modules\/.*/,
      /heapCapture\/bundle\.js/,
      /.*\/__tests__\/.*/
    ];
    

    다음으로 변경합니다.

    var sharedBlacklist = [
      /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
      /website\/node_modules\/.*/,
      /heapCapture\/bundle\.js/,
      /.*\/__tests__\/.*/
    ];
    

    ★★★★★★★★★★★★★★★를 실행하고 있는 경우는, 해 주세요.npm install ★★★yarn install코드를 다시 변경해야 합니다.

React Native 튜토리얼(Linux에서 개발하여 Android를 타겟팅)을 따르는 동안 동일한 문제가 발생했습니다.

문제는 다음 단계에서 문제를 해결하는 데 도움이 되었습니다.다음 명령을 다음 순서로 실행합니다.

  1. 디렉토리) (프로젝트 디렉토리 내)mkdir android/app/src/main/assets
  2. react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
  3. react-native run-android

할 수 .scriptspackage.json음음음같 뭇매하다

"android-linux": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && react-native run-android"

그냥 .npm run android-linux매번 명령줄을 통해 확인할 수 있습니다.

이것은 여러 가지 방법을 시도해 본 결과 에게 효과가 있었다.

일 in 。node_modules\metro-config\src\defaults\blacklist.js

대체:

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

다음과 같이 설정합니다.

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

이게 도움이 되길 바라

Android 9.0(API 레벨 28)부터는 클리어 텍스트 지원이 기본적으로 비활성화되어 있습니다.

일반 실행 명령을 올바르게 실행하는 경우 이 문제를 해결하려면 다음과 같이 하십시오.

  1. npm 설치
  2. 반응 반응 반응 개시
  3. 반응 반응 반응 반응 반응 반응 반응 반응 반응

Android 매니페스트 파일을 이렇게 수정하십시오.

<application
    android:name=".MainApplication"
    android:icon="@mipmap/ic_launcher"
    android:usesCleartextTraffic="true" // add this line with TRUE Value.
android:theme="@style/AppTheme">

Linux의 경우 App root 디렉토리에서 터미널을 열고

npm start

그런 다음 다른 터미널 창을 열고 다음을 실행합니다.

react-native run-android

우리 대부분과 마찬가지로 여러분도 VSCODE에서 실행하고 있을 것입니다.저 같은 경우에는

npx 리액트 리액트 리액트 리액트 스타트

다른 단말기에서

이제 VSCODE의 터미널에서 npx react-native run-android 실행

이에 대한 저의 솔루션은 다음과 같습니다.

Metro 서버 시작

$ react-native start

Android 부팅

$ react-native run-android

포트 8081이 이미 사용 중이라는 오류가 나타나면 해당 프로세스를 종료하고 다시 실행할 수 있습니다.

$ react-native start

React Native Troubleshooting 페이지를 참조하십시오.

몇 시간 후 답을 찾고 있습니다.해결책은 버전 12.4로 다운그레이드노드를 만드는 것이었습니다.

이 에러는 노드버전 12.6에서 네이티브 0.60으로 리액트 합니다.

여러분, 새벽 두 명의 조합이 제 문제를 해결했습니다.포트 관련 문제였어요.

adb reverse tcp:8088 tcp:8088
react-native run-android --port=8088

이렇게 함으로써 USB로 연결된 내 휴대폰은 앱이 정상적으로 로딩되었습니다.PC의 AV나 Vagrant 등의 엘스가 그 포트를 사용하고 있었던 것 같습니다.

필요에 따라 8088을 다른 것으로 변경할 수 있습니다.

맛있게 드세요!

여기서 다루지 않은 명백한 가능성을 추가하고 싶을 뿐입니다.네트워크 변경(주로 네트워크 상태)을 검출하기 위해 @react-native-community/netinfo를 사용하고 있습니다.네트워크 오프 상태를 테스트하려면 (에뮬레이터의) WIFI 스위치를 꺼야 합니다.이것에 의해, 에뮬레이터와 디버깅 환경 사이의 브리지도 효과적으로 절단됩니다.저는 컴퓨터를 사용하지 않아 테스트 후에도 와이파이를 다시 활성화하지 않았고, 돌아왔을 때 바로 잊어버렸습니다.

이것은 다른 누군가에게도 해당될 수 있고 다른 과감한 조치를 취하기 전에 확인해 볼 가치가 있다.

저도 이 문제에 직면했습니다.저는 다음 단계를 해결했습니다.

Environment Verable에서 Android sdk 경로를 확인합니다.

ANDROID_HOME = C:\Users\user_name\AppData\Local\Android\Sdk[시스템 변수 (System Variable)]의
★★★★★★★★★★★★★★★★★」C:\Users\user_name\AppData\Local\Android\Sdk\platform-tools시스템 변수 경로

sharedBlacklist를 다음과 같이 바꿉니다.

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

node_syslog/syslog-config/src/default/syslog.syslog에 추가되어 있습니다.

그런 다음 npx react-native run-android --port 9001을 실행합니다.

해피 코딩..!

localhost에 대해 활성화한 클리어 텍스트 허용과 같이 여기에 언급된 다른 항목들의 조합이 있을 것입니다.하지만 이것이 퍼즐의 마지막 조각이었다.

project.ext.react = [
    entryFile: "index.js",

    // ADD THESE THREE

    bundleAssetName: "index.android.bundle",
    bundleInDebug: true,
    bundleInRelease: true
]

RN: 0.61.3

어떤 대답도 문제를 해결하지 못한 것 같아요.에뮬레이터에서 리액트 네이티브 앱을 실행할 수 있었지만 (서버가 실행 중일 때에도) 동일한 코드가 장치에서 앱을 실행할 때 이 오류를 발생시켰습니다.

단말기에서 다음 명령을 실행하여 해결할 수 있었습니다.

adb reverse tcp:8081 tcp:8081

제 경우 에뮬레이터에서 애플리케이션을 실행하려고 했습니다.근데 이거를 받고 있었어요

여기에 이미지 설명 입력

이 IP 10.0.2.2는 에뮬레이터 크롬 브라우저에서 액세스할 수 있었습니다.문제는 이 IP가 Android 네트워크 보안 설정에 화이트리스트에 포함되지 않는다는 것입니다.따라서 여기에 표시된 IP 주소가 무엇이든 아래 설정에 IP 주소를 추가하면 바로 사용할 수 있습니다.

./android/app/src/main/AndroidManifest.xml

        <application
                android:name=".MainApplication"
+               android:usesCleartextTraffic="true"   <- Add this line
                android:allowBackup="true"
                android:label="@string/app_name"
                android:icon="@mipmap/ic_launcher"

./android/app/src/main/res/xml/network_security_config.xml
</network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
        <domain includeSubdomains="true">10.0.1.1</domain>
        <domain includeSubdomains="true">10.0.2.2</domain>
        <domain includeSubdomains="true">10.0.3.2</domain>
    </domain-config>
 </network-security-config>

교환만 하면 됩니다.<domain includeSubdomains="true">10.0.2.2</domain>react-native의 됩니다.

저도 같은 문제가 있었습니다만, 문제는 adb가 올바른 환경 패스에 있지 않다는 것입니다.에러에 의해, adb에 있는 동안, 포토가 정지해 재기동합니다.

환경 변수 추가(ADB)

  1. 오픈 환경 변수
  2. 두 번째 프레임 PATH 변수에서 선택하고 아래 편집 옵션을 클릭합니다.
  3. 추가 옵션을 클릭합니다.
  4. sdk 플랫폼툴 패스 C를 송신합니다.\Users\내 사용자 \AppData\Local\안드로이드\Sdk\platform-툴

주의: 또는 머신 내의 adb.exe 위치에 따라 달라집니다.

  1. 변경 내용 저장

Android 빌드 다시 실행

$ react-native run-android

또는

$ react-native start

$ react-native run-android

제 경우 에뮬레이터에 프록시를 설정했습니다.그 프록시를 삭제하면 정상으로 돌아갑니다.

이 오류의 가능성도 잘못된 경로입니다. 한 번 확인하십시오.

 export ANDROID_HOME=/Users/microrentindia/Library/Android/sdk/
 export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

빌드를 건드리지 않고 이 문제를 해결한 방법:

1 - 가상 디바이스 닫기

2 - 물리 디바이스에서 테스트 완료 -- (동작)

3- API 30 Android 10+를 사용하여 새로운 가상 디바이스 생성

4- 새로 만든 가상 디바이스에서 다시 시도하면 모든 작업이 원활하게 수행됩니다.

에뮬레이터에서 실수로 와이파이가 꺼졌기 때문에 다시 켜서 정상적으로 작동하게 되었습니다.누군가에게 도움이 되었으면 좋겠다.

이 문제는 리액션 네이티브 업그레이드에서 시작되었습니다.64비트 지원을 추가하기 위해 업그레이드가 필요했습니다.

Before:
-------- 
Environment:
Node: 10.15.0
npm: 6.9.0
Watchman: 4.9.0
Xcode: Not Found
Android Studio: 3.4 AI-183.6156.11.34.5692245

Packages: (wanted => installed)
react: 16.0.0-alpha.12 => 16.0.0-alpha.12
react-native: ~0.55.2 => 0.55.4
react-native-cli: 2.0.1

After:
------
info 
React Native Environment Info:
Binaries:
Node: 10.15.0
npm: 6.9.0
Watchman: 4.9.0
SDKs:
Android SDK:
API Levels: 23, 26, 27, 28
Build Tools: 27.0.3, 28.0.3
System Images: android-28 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 3.4 AI-183.6156.11.34.5692245
Xcode: /undefined - /usr/bin/xcodebuild
npmPackages:
react: ^16.8.6 => 16.9.0 
react-native: 0.59.9 => 0.59.9 
npmGlobalPackages:
create-react-native-app: 2.0.2
react-native-cli: 2.0.1

또한 업그레이드를 위해 한 가지 중요한 변경사항은 ../android/build/build.gradle입니다.

android {
    ...
    defaultConfig {
        ...
        targetSdkVersion 28
        ...
    }
    ...
}

빌드(.apk)를 gool 재생 콘솔에 업로드하려고 할 때 경고에 따라 targetSdkVersion을 27에서 28로 변경해야 했습니다.이것이 나에게 위 오류의 근본 원인이라는 것을 나는 거의 깨닫지 못했다.@tom과 @tinmarfrutos의 즉답은 일리가 있었다.

Android:usesCleartextTraffic="true"를 Android/app/src/debug/AndroidManifest.xml에 추가하여 문제를 해결했습니다.

나에게 효과가 있었던 솔루션은 다음과 같습니다.

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
]; 

내 코드 예시

언급URL : https://stackoverflow.com/questions/55441230/unable-to-load-script-make-sure-you-are-either-running-a-metro-server-or-that-yo

반응형