programing

앱 시작 시 "BatchedBridge를 가져올 수 없습니다. 번들이 올바르게 패키지되었는지 확인하십시오." 오류

lovecodes 2023. 8. 13. 10:15
반응형

앱 시작 시 "BatchedBridge를 가져올 수 없습니다. 번들이 올바르게 패키지되었는지 확인하십시오." 오류

Android 4.4.2에서 반응 네이티브 프로젝트를 생성하려고 하면 이 오류 화면이 나타납니다.

said error

해결할 방법을 찾지 못했습니다패키지를 다시 시작하고, 장치를 다시 연결하고, 리액티브를 다시 설치하고, 새로운 프로젝트를 시작하려고 시도했습니다.6.0.0 이상 버전에서는 정상적으로 작동합니다.

이에 대한 가능한 해결책은 응용프로그램을 먼저 번들로 제공하지 않고 다음 단계를 수행한 다음 응용프로그램 디버그를 배포하는 것입니다.단말기에 pk

$ cd myproject  
$ react-native start > /dev/null 2>&1 &  
$ curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

(폴더인경우)인 경우)assets. it 파일 이름) 파일 이름

그런 다음 프로젝트 루트에서 실행

$> (cd android/ && ./gradlew assembleDebug)

합니다.android/app/build/outputs/apk/app-debug.apk

그게 당신의 문제를 해결하는지 알려주세요.

편집:

당신은 그것을 당신의 소포에 간단히 넣을 수 있습니다.json은 자동화를 위한 스크립트로서, 향후 리액트 네이티브 릴리스에서 수정될 것이며 최종 APK를 조립하기 전에 실행될 것이므로 이것이 필요하지 않을 것이라고 생각합니다(저도 희망합니다)

배치:

"scripts": {
    "build": "(cd android/ && ./gradlew assembleDebug)",
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "bundle-android": "react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/"
  },

또는 언급된 것처럼 컬 등가이지만 대부분의 경우 위의 내용이 더 견고합니다.

저도 이 문제를 접했습니다.제가 한 일은 제 장치에서 앱을 강제로 종료한 다음 다른 콘솔을 열고 실행한 것입니다.

react-native start

그리고 나서 나는 내 기기에서 앱을 다시 열었고 다시 작동하기 시작했습니다.

편집: USB를 통해 Android 장치를 사용하고 있으며 플러그를 뽑거나 컴퓨터가 절전 모드로 전환된 경우 먼저 실행해야 할 수도 있습니다.

adb reverse tcp:8081 tcp:8081

방금 이 오류를 받았습니다.과 같습니다: 저는 다은제가내용다니입수정한음다니를 했습니다.Dismiss개발자 메뉴로 들어가서,Dev Settings,선택하세요.Debug server host & port for device했습니다. IP 주소는 다음과 같습니다.192.168.0.xx:8xxx당신의 개발자 기계가 당신의 와이파이 네트워크에 있는 IP 주소를 무엇이든 사용하세요.는 보통 포는보통입니다.:8081

제가 이 일을 하고 나면, 모든 것이 잘 풀렸습니다.또한, 개발 메뉴에 있는 동안 다음 항목을 선택해야 합니다.Enable Live Reload그리고.Debug JS Remotely디버깅하는 동안 훨씬 더 쉽게 삶을 즐길 수 있습니다.

이것이 저에게 효과가 있었습니다(다른 모든 솔루션을 사용해 본 결과...).

려달을 합니다.adb reverse tcp:8081 tcp:8081東京의 \Android\sdk\platform-tools

물리적 장치를 사용하여 React Native를 처음 시작했을 때도 이 기능을 사용했습니다.그렇다면 시작하기 전에 몇 가지 추가 작업을 수행해야 합니다.React Native의 'Dev Settings'에 개발 기계에 대한 정보를 입력해야 합니다.

오류가 표시되면 장치를 흔듭니다.대화 상자가 팝업되고 마지막 옵션은 'Dev Settings'가 됩니다.'디바이스용 서버 핫&포트 디버깅'을 선택하고 로컬 IP와 사용된 포트(일반적으로 8081)를 입력합니다.

https://facebook.github.io/react-native/docs/running-on-device-android.html 의 마지막 단락을 참조하십시오.

모든 솔루션이 제대로 작동하지 않는 경우 다음을 시도해 보십시오.

내가 찾은 것은<root>/android/app/build/intermediates/assets/debug 를 하여 폴더가 비어 있습니다.cd android && ./gradlew assembleDebug필요한 파일을 만들지 않았습니다. 나중에 우리의 반응 네이티브 앱에서 Javascript 스레드에 의해 사용됩니다.

debug build 명령이 이상적으로 생성했어야 하는 다음 명령을 수동으로 실행했습니다.

node node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --reset-cache --entry-file index.android.js --bundle-output /<path to dir>/android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest /<path to dir>/android/app/build/intermediates/res/merged/debug

한 후 이 에서 두 .<root>/android/app/build/intermediates/assets/debug

한 번 이 뛰었습니다.cd android && ./gradlew installDebug내 앱이 다시 작동하기 시작했습니다.

더 많은 디버깅을 수행하고 실제로 실패한 내용을 업데이트합니다.

별도의 터미널에서 장치를 컴퓨터에 연결하고 다음 명령을 실행합니다.

react-native start 
cd user/Library/Android/sdk/platform-tools/
./adb reverse tcp:8081 tcp:8081

응용 프로그램 터미널:

react-native run-android 
install apk on your device from this location android/app/build/outputs/apk/app-debug.apk

조금 늦었지만 이것은 저에게 정말 효과가 있습니다.

  1. react-native run-android.
  2. react-native start.

번째 는 첫번명빌니다됩드이령을 .apk연결된 경우 장치에 배포할 수 있습니다.앱을 열면 빨간 화면에 오류가 표시됩니다.그런 다음 두 번째 명령을 실행하여 패키저를 실행하고 앱 번들을 빌드합니다.

문제 참조:

1.토착적인 출발

2.릭클Reload(R,R)장치에 있습니다.

터미널에서 이 명령을 시도한 다음 다시 로드하십시오.그것은 나에게 효과가 있었다.

adb 역 tcp:8081 tcp:8081

  1. 유전자 조작을 다시 시작합니다.
  2. 려달을 react-native run-android
  3. 문제는 해결되었습니다.

Z3 Compact D5803 - 6.0.1 장치에서도 동일한 예외가 있었습니다.

.buckconfig 파일을 열고 줄을 바꿨습니다.

target = Google Inc.:Google APIs:23

로.

target = Google Inc.:Google APIs:24

왜냐하면 SDK Manager에서 Android 6.X가 api 레벨 24를 가지고 있다는 것을 보았기 때문입니다.

저는 왜냐하면.adb.PATH위치해 있습니다./Users/man/Library/Android/sdk/platform-tools저에게는, 그것이 당신을 위한 다른 곳일 수도 있지만, 어쨌든, 그것을 찾아서 그것이 도움이 되는지 보기 위해 당신의 길에 그것을 추가하세요.

당신은 안드로이드 5.0을 사용하고 있기 때문에 기본값을 사용할 수 없습니다.adb reverse그러나 Facebook은 Wi-Fi를 통해 개발 서버에 연결하기 위한 공식 문서를 추가했습니다. 이 문서는 당신의 버전을 지원할 것입니다.MacOS용 지침을 인용하지만 Linux 및 Windows용 지침도 있습니다.

방법 2: Wi-Fi를 통해 연결

Wi-Fi를 통해 개발 서버에 연결할 수도 있습니다.먼저 USB 케이블을 사용하여 장치에 앱을 설치해야 하지만 설치가 완료되면 다음 지침에 따라 무선으로 디버깅할 수 있습니다.계속하기 전에 개발 컴퓨터의 현재 IP 주소가 필요합니다.

IP 주소는 시스템 기본 설정 → 네트워크에서 확인할 수 있습니다.

랩톱과 전화기가 동일한 Wi-Fi 네트워크에 있는지 확인합니다.장치에서 React Native 앱을 엽니다.오류가 있는 빨간색 화면이 표시됩니다.이것은 괜찮습니다.다음 단계에서 이 문제를 해결할 수 있습니다.앱 내 개발자 메뉴를 엽니다.Dev Settings → 장치의 디버그 서버 호스트로 이동합니다.컴퓨터의 IP 주소와 로컬 개발 서버의 포트(예: 10.0.1.1:8081)를 입력합니다.개발자 메뉴로 돌아가서 JS 다시 로드를 선택합니다.

이 문제는 "무작위적"으로 발생했으며 시나리오에서 무엇이 잘못되었는지 깨닫는 데 시간이 걸렸습니다.

React-native-cli 2.0.1로 업데이트한 후 로그에 근본 원인을 찾고 찾는 데 도움이 되는 메시지 출력이 있었습니다.

JS 서버를 인식할 수 없습니다. 빌드를 계속합니다...

몇 가지 링크를 조사한 결과 다음과 같은 링크가 발견되었습니다.

JS 서버를 인식할 수 없습니다.

윈도우에 있기 때문에 netstat을 실행해 보니 VLC 플레이어도 포트 8081에서 실행되고 있어 문제가 발생했습니다.그래서 저의 경우, 반응 네이티브 서버보다 먼저 vlc 서버를 시작하면 작동하지 않을 것입니다.

이전 버전의 react-native-cli에서 동일한 로그 메시지가 출력되지 않아 자동으로 실패합니다.

TL, DR: 패키지 관리자와 동일한 포트에서 실행 중인 항목이 있는지 확인합니다(기본값 8081).

누군가 다음과 같은 것을 제안했습니다.

react-native run-native react-native start --react-cache,

하지만 저의 경우에는 cli 명령 프롬프트 창을 닫고 다음을 사용합니다.

npx react-native run-android

그리고 잘 작동했습니다.

내 방식은:

react-native start

그런 다음 장치에서 다음을 사용합니다.

click to Reload.

콘솔 react-native를 참조하십시오. js 번들 데이터를 참조하십시오.

내 문제는 내가 내 일을 겪었다는 것입니다.AndroidManifest.xml하고 라인을 했습니다.

<uses-permission android:name="android.permission.INTERNET" />

왜냐하면 내 앱은 인터넷이 필요하지 않을 것이기 때문입니다.그러나 반응 네이티브 디버깅 앱은 인터넷 액세스(패키저에 액세스)가 필요합니다.:)

저도 같은 문제가 있었습니다.제가 create-react-native-app Awesome Project를 통해 반응형 프로젝트를 만들었을 때 전화기의 Expo 앱에서 잘 작동했습니다.그 후 저는 그 퀵스타트 프로젝트를 제 프로젝트 개발에 사용하고 싶었지만 당신과 같은 오류가 발생했습니다.

몇 가지 조사 후에 저는 반응 네이티브 in AwesomeProject로 새로운 프로젝트를 시작하는 것이 더 낫다는 것을 알게 되었습니다. (반응 네이티브 문서에 모든 설정이 있음)그런 다음 다음 명령을 실행합니다.

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

번들이 있는 것을 수정해야 합니다(--dev false는 경고를 표시하지 않습니다).

가상/실제 장치에서 앱을 실행하기 위해 필요한 작업은 다음과 같습니다.

react-native run-android

그리고 그것은 잘 작동할 것입니다.적어도 저한테는 효과가 있었어요.

캐시 정리 시도

react-native start --react-native-cache

실행 시 다음 오류가 있는지 확인하십시오.react-native run-android: adb server version (XX) doesn't match this client (XX); killing...

그런 경우에는 반드시/usr/local/opt/android-sdk/platform-tools/adb그리고./usr/local/bin/adb한 동한것가리킴을 adb

제 경우에는 한 명이/Users/sd/Library/Android/sdk/platform-tools/adbSDK), 하나는 (Android SDK)를 가리켰습니다./usr/local/Caskroom/android-platform-tools/26.0.2/platform-tools/adb (브루홈홈

그리고 두 사람이 모두 지적한 후에 문제가 해결되었습니다./Users/sd/Library/Android/sdk/platform-tools/adb(Android SDK)

저도 이 오류를 받았습니다. 정말 혼란스러웠습니다.모든 대답이 작동하지 않기 때문입니다.경로에 adb를 추가한 직후.

저는 사이드 동기화를 활성화하고 활성화했습니다.즉시 닫음으로써 문제가 사라졌습니다.PC와 장치 간의 이 통신 또는 다른 통신을 닫을 가치가 있을 수 있습니다.

사용하던 포트(기본값 8081)를 열어야 했습니다.Linux에서 다음 작업을 수행할 수 있습니다.

sudo iptables -A INPUT -p tcp --dport 8081 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 8081 -m conntrack --ctstate ESTABLISHED -j ACCEPT

실제로 이 작업이 필요한지 테스트할 수 있습니다.안드로이드 기기에서 크롬으로 개발 서버로 이동하기만 하면 됩니다.응답이 없으면 이것이 필요할 수 있습니다.반응이 있으면 도움이 되지 않습니다.

저에게 문제는 'adb'가 인식되지 않는다는 것이었습니다. 이 답변을 확인하십시오.

이 문제를 해결하려면 C:\Users\USERNAME\AppData\Local\Android\sdk\플랫폼 도구에서 환경 변수

우리 대부분은 반응 네이티브 프로젝트 #1을 시작할 때 처음으로 이 문제에 직면합니다.

몇 가지 간단한 단계를 통해 문제가 해결되었습니다.

다음 명령을 사용하여 샘플 프로젝트를 만들었습니다.

react-native init ReactProject1

해결책

해결책은 도와주는 것입니다.local-cli\runAndroid\adb.js찾기 위해서.adb.exe와같방로으와 local-cli\runAndroid\runAndroid.js:

프로젝트 이름 아래에서 대체 문 찾기(지정한 이름)\node_modules\react-native\local-cli\runAndroid

대체:

const devicesResult = child_process.execSync('adb devices');

작성자:

const devicesResult = child_process.execSync( (process.env.ANDROID_HOME ? process.env.ANDROID_HOME + '/platform-tools/' : '') + 'adb devices');

위의 교체 작업을 수행한 후 cmd에서 react-native run-bundle을 실행하면 apk가 번들되고 처음에는 장치에 로컬로 js 번들을 설치하려고 시도합니다.(성공)

"npm 시작"

저는 방금 터미널을 닫고 새로 열었습니다.cd 명령으로 프로젝트 위치로 이동했습니다.그런 다음 "npm start"를 입력하고 다시 로드하려면 "r"을 입력합니다.모든 것이 사라졌습니다.저는 모든 사람들이 이것을 한번에 시도해봐야 한다고 생각합니다.

저는 위/아래의 많은 제안을 시도했지만, 결국 제가 직면한 문제는 이전에 홈브루를 사용하여 설치된 감시자 권한이었습니다.에뮬레이터를 사용하려고 시도하는 동안 터미널 메시지를 보고 에뮬레이터에서 이 'Could not get Batched Bridge' 메시지와 함께 감시자와 관련된 '권한 거부' 오류가 발생하면 다음을 수행합니다.

이동/Users/<username>/Library/LaunchAgents사용자가 읽고 쓸 수 있도록 사용 권한 설정을 변경합니다.이것은 당신이 실제로 가지고 있는지 아닌지에 관계없이.com.github.facebook.watchman.plist거기에 줄을 서세요.

나는 또한 추가할 필요가 있다는 것을 발견했습니다.

반응 네이티브 업그레이드

응용 프로그램이 올바르게 실행되도록 합니다.

나도 같은 문제를 얻었지만, 그것은 나 자신의 어리석은 실수였습니다...

안드로이드 스튜디오에서, 나는 런칭했습니다.installDebug/installRelease에서 다기듬을의 app대신 프로젝트root

언급URL : https://stackoverflow.com/questions/38870710/error-could-not-get-batchedbridge-make-sure-your-bundle-is-packaged-properly

반응형