Android ไม่สามารถโหลดชุดบันเดิล JS


201

ฉันพยายามเรียกใช้ AwesomeProject บน Nexus5 ของฉัน (android 5.1.1)

ฉันสามารถสร้างโครงการและติดตั้งบนอุปกรณ์ แต่เมื่อฉันเรียกใช้ฉันได้รับหน้าจอสีแดงว่า

ไม่สามารถดาวน์โหลดบันเดิล JS คุณลืมเริ่มต้นเซิร์ฟเวอร์การพัฒนาหรือเชื่อมต่ออุปกรณ์ของคุณ?

ใน iOS ดั้งเดิมที่ตอบสนองฉันสามารถเลือกโหลด jsbundle ออฟไลน์ได้ ฉันจะทำสิ่งเดียวกันสำหรับ Android ได้อย่างไร (หรืออย่างน้อยฉันจะกำหนดค่าที่อยู่เซิร์ฟเวอร์ได้ที่ไหน)

ปรับปรุง

หากต้องการรันด้วยโลคัลเซิร์ฟเวอร์ให้รันคำสั่งต่อไปนี้ภายใต้ไดเรกทอรีรูทโปรเจคของคุณ

  1. react-native start > /dev/null 2>&1 &
  2. adb reverse tcp:8081 tcp:8081

โปรดดูคำตอบของ dsissitka สำหรับรายละเอียดเพิ่มเติม

หากต้องการรันโดยไม่มีเซิร์ฟเวอร์ให้รวม jsfile ลงใน apk โดยเรียกใช้:

  1. สร้างโฟลเดอร์สินทรัพย์ภายใต้ android/app/src/main
  2. curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

โปรดดูคำตอบของ kzzzf สำหรับรายละเอียดเพิ่มเติม


Stll ยังไม่พบปัญหาเลย แต่ในขณะเดียวกันคุณสามารถลองบนเครื่องจำลองของคุณ มันทำงานได้อย่างสมบูรณ์แบบบนจีโนมของฉัน
— ไบรอัน

เมื่อฉันพยายามพิมพ์คำสั่งสองคำสั่งเพื่อเรียกใช้กับเซิร์ฟเวอร์ภายในฉันพบข้อผิดพลาดใน PowerShell ว่า: "ไม่อนุญาตให้ใช้เครื่องหมายแอมเปอร์แซนด์ (&)" ฉันคิดว่าฉันควรจะอยู่ในรูทของ app-dir เมื่อรันคำสั่ง?
— 2236165

1
นี่หมายความว่าการดีบักผ่าน USB บน Android 4.1 เป็นไปไม่ได้เนื่องจากadb reverseไม่รองรับ
— 59

ฉันต้องการพูดถึงว่าเพื่อให้สามารถเรียกใช้งานadb reverse tcp:8081 tcp:8081คุณต้องมี ADB 1.0.32 รุ่นreverseตัวเลือกไม่ได้อยู่ใน 1.0.31
— jvalen

คำตอบ:


110

ในการรวมไฟล์ JS ไว้ใน apk ของคุณในขณะที่เซิร์ฟเวอร์ของคุณทำงานอยู่ ( react-native start) ดาวน์โหลดบันเดิลในไดเรกทอรีสินทรัพย์ของแอป

curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

ด้วยรุ่นถัดไป (0.12) เราจะแก้ไขreact-native bundleคำสั่งให้ทำงานกับโครงการ Android ตามที่คาดไว้


ขอบคุณ! ฉันจะบอก reactInstanceManager ให้ใช้สินทรัพย์รวมได้อย่างไร หรือเวทย์มนตร์จะเกิดขึ้นโดยอัตโนมัติ
— Matthew

9
ไม่สามารถสร้างไฟล์คำเตือน: android / app / src / main / assets / index.android.bundle: ไม่มีไฟล์หรือคำเตือน: directory
— almeynman

2
คำเตือน: ล้มเหลวในการสร้างไฟล์คำเตือน: android / app / src / main / assets / index.android.bundle: ไม่มีไฟล์หรือคำเตือน: ไดเรกทอรี curl: (23) ร่างกายการเขียนที่ล้มเหลว (0! = 16167)
— Shivang

3
@Shivang: สร้างสินทรัพย์ไดเรกทอรีใน android / app / src / main ฉันมีข้อผิดพลาดนี้เพราะยังไม่มี
— piscator

1
นี่คือวิธีที่ดีที่สุดและง่ายที่สุดเมื่อเราแจกจ่ายแอปในพื้นที่เพื่อการทดสอบ (ผ่านเนื้อผ้า) ขอบคุณ
— Dinesh Anuruddha

90

ต่อไปนี้ทำให้มันทำงานกับฉันใน Ubuntu 14.04:

cd (App Dir)
react-native start > /dev/null 2>&1 &
adb reverse tcp:8081 tcp:8081

อัปเดต : ดู

อัปเดต 2 : @scgough เราได้รับข้อผิดพลาดนี้เนื่องจาก React Native (RN) ไม่สามารถเรียก JavaScript จากเซิร์ฟเวอร์ dev ที่ทำงานบนเวิร์กสเตชันของเรา คุณสามารถดูว่าทำไมสิ่งนี้เกิดขึ้นที่นี่:

https://github.com/facebook/react-native/blob/42eb5464fd8a65ed84b799de5d4dc225349449be/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java#L116-L137

หากแอป RN ของคุณตรวจพบว่าคุณกำลังใช้ Genymotion หรือโปรแกรมจำลองการทำงานจะพยายามดึง JavaScript จาก GENYMOTION_LOCALHOST (10.0.3.2) หรือ EMULATOR_LOCALHOST (10.0.2.2) มิฉะนั้นจะถือว่าคุณกำลังใช้อุปกรณ์และพยายามดึง JavaScript จาก DEVICE_LOCALHOST (localhost) ปัญหาคือเซิร์ฟเวอร์ dev ทำงานบนโลคอลโฮสต์ของคุณไม่ใช่อุปกรณ์ดังนั้นเพื่อให้สามารถใช้งานได้คุณต้อง:


5
ใช้ adb reverse tcp: 8081 tcp: 8081 บน osx ทำงานได้ดี
— shyamal

มันได้ผล! ขอบคุณมาก. คุณรู้หรือไม่ว่ามีวิธีชี้ jscodelocation ไปยังทรัพยากร apk เช่นเดียวกับ main.jsbundle ของ iOS?
— Matthew

@dsissitka ฉันขอเพียงเพื่อให้มันบันทึกไว้ที่นี่ในหัวข้อ - สิ่งที่จะทำอย่างไร
— scgough

@ Matthew ไม่กลัว ขออภัย!
— dsissitka

จะเกิดอะไรขึ้นถ้าเราทำงานบน Android 4.2 และได้รับข้อผิดพลาดนี้: stackoverflow.com/questions/31525431/ …
— Augustin Riedinger

39

ตกลงฉันคิดว่าฉันพบปัญหาที่นี่ มันเกี่ยวกับเวอร์ชั่นของwatchmanฉันที่กำลังรันอยู่

ในเชลล์ใหม่ให้รันbrew update จากนั้น: brew unlink watchman แล้ว:brew install watchman

ตอนนี้คุณสามารถเรียกใช้react-native startจากโฟลเดอร์โครงการของคุณ

ฉันเปิดเชลล์นี้ทิ้งไว้สร้างหน้าต่างเชลล์ใหม่และเรียกใช้: react-native run-androidจากโฟลเดอร์โครงการ ถูกต้องกับโลก

PS ฉันเป็นรุ่น 3.2 เดิมของยาม สิ่งนี้อัพเกรดฉันเป็น 3.7

PPS ฉันยังใหม่กับสิ่งนี้เพื่อไม่ให้เป็นเส้นทางที่เร็วที่สุดในการแก้ปัญหา แต่มันได้ผลสำหรับฉัน

* ข้อมูลเพิ่มเติมสำหรับการรัน / การดีบักบนอุปกรณ์ *

คุณอาจพบว่าถ้าคุณปรับใช้แอปของคุณไปยังอุปกรณ์ Android ของคุณมากกว่า emulater คุณจะได้รับหน้าจอสีแดงของการเสียชีวิตUnable to load JS Bundleที่มีข้อผิดพลาดว่า คุณต้องตั้งค่าเซิร์ฟเวอร์ดีบั๊กสำหรับอุปกรณ์ของคุณเพื่อให้คอมพิวเตอร์ของคุณทำงานอยู่ตอบสนอง ... ไม่ว่าจะเป็นชื่อหรือที่อยู่ IP

  1. กดอุปกรณ์Menuปุ่ม
  2. เลือก Dev Settings
  3. เลือกDebug server host for deviceหรือChange Bundle Location
  4. พิมพ์ IP ของเครื่องของคุณและ Reload JS พร้อมพอร์ตการตอบสนองเช่น 192.168.1.10:8081

ข้อมูลเพิ่มเติม: http://facebook.github.io/react-native/docs/running-on-device-android.html


@ jacobross85 ดีใจที่ได้ช่วย! ส่ง upvote ให้ฉันถ้าคุณรู้สึกว่ามัน ;-)
— scgough

1
ต้องทำงานbrew uninstall watchmanก่อนที่จะติดตั้งเวอร์ชันล่าสุดสำหรับฉัน
— Amozoss

ฉันได้เพิ่มข้อมูลเพิ่มเติมเล็กน้อยสำหรับการดีบักเหล่านั้นไปยังอุปกรณ์ Android แทนที่จะเป็นตัวจำลอง
— scgough

เรียกใช้ Watchman เวอร์ชันล่าสุดแล้ว แต่นี่แก้ไขได้สำหรับฉัน Weeeeird
— pfac

1
ขอบคุณสำหรับพี่ชายคนนี้มันมีประโยชน์จริงๆ นั่นเป็นเหตุผลที่ฉันจะให้คุณ upvote
— Priyank Jotangiya

17

จากไดเรกทอรีโครงการของคุณเรียกใช้

react-native start

มันส่งออกดังต่อไปนี้:

$ react-native start
 ┌────────────────────────────────────────────────────────────────────────────┐ 
 │  Running packager on port 8081.                                            │ 
 │                                                                            │ 
 │  Keep this packager running while developing on any JS projects. Feel      │ 
 │  free to close this tab and run your own packager instance if you          │ 
 │  prefer.                                                                   │ 
 │                                                                            │ 
 │  https://github.com/facebook/react-native                                  │ 
 │                                                                            │ 
 └────────────────────────────────────────────────────────────────────────────┘ 
Looking for JS files in
   /home/user/AwesomeProject 


React packager ready.

[11:30:10 PM] <START> Building Dependency Graph
[11:30:10 PM] <START> Crawling File System
[11:30:16 PM] <END>   Crawling File System (5869ms)
[11:30:16 PM] <START> Building in-memory fs for JavaScript
[11:30:17 PM] <END>   Building in-memory fs for JavaScript (852ms)
[11:30:17 PM] <START> Building in-memory fs for Assets
[11:30:17 PM] <END>   Building in-memory fs for Assets (838ms)
[11:30:17 PM] <START> Building Haste Map
[11:30:18 PM] <START> Building (deprecated) Asset Map
[11:30:18 PM] <END>   Building (deprecated) Asset Map (220ms)
[11:30:18 PM] <END>   Building Haste Map (759ms)
[11:30:18 PM] <END>   Building Dependency Graph (8319ms)

1
ฉันยังมีปัญหารายงาน OP ฉันเรียกใช้โครงการโดยใช้react-native run-androidจากโฟลเดอร์โครงการ มันสร้าง OK ในเทอร์มินัล แต่ทันทีที่แอปเปิดบนอุปกรณ์ของฉันฉันได้รับคำว่าจอแดงUnable to download JS bundle
— scgough

6
คุณต้องเรียกใช้ adb reverse tcp: 8081 tcp: 8081
— Matthew

1
ฉันใช้ adb reverse tcp: 8081 tcp: 8081 และฉันได้รับข้อผิดพลาด: error error: closed
— JacobRossDev

1
ฉันมีปัญหาเดียวกันข้อผิดพลาด: ปิด มีอะไรให้ช่วยไหม?
— Eusthace

ตรวจสอบว่าที่อยู่ IP ของคุณถูกต้องใน "การตั้งค่า Dev" หากคุณใช้ Android หากคุณกำลังทำงานกับ IP แบบไดนามิกสิ่งนี้สามารถเปลี่ยนแปลงได้ในชั่วข้ามคืน
— Sam Purcell

13

ทางออกที่ง่ายสำหรับฉันกับ Ubuntu 14.04

react-native run-android

ตัวจำลอง (เปิดตัวแล้ว) จะกลับมา: ไม่สามารถดาวน์โหลด JS Bundle; เริ่มต้นอีกครั้งเซิร์ฟเวอร์ JS:

react-native start

กด Reload JS บนตัวจำลอง มันใช้งานได้สำหรับฉัน หวังว่ามันจะช่วย


ใช้งานได้จริง จากคำตอบทั้งหมดนี่คือทางออกที่ง่ายที่สุด ไม่อยากเชื่อเลยว่านี่ไม่ใช่เอกสารทางการ
— bluecollarcoder

OP เกี่ยวกับการทำงานบนอุปกรณ์ไม่ใช่ตัวจำลอง ขั้นตอนเหล่านี้ไม่ทำงานบนอุปกรณ์โดยไม่มีการตั้งค่าเพิ่มเติม ดูคำตอบที่ยอมรับได้
— davidgoli

8

ในแอพบน Android ฉันเปิดเมนู (Command + M ใน Genymotion) -> การตั้งค่า Dev -> โฮสต์เซิร์ฟเวอร์ Debug & พอร์ตสำหรับอุปกรณ์

ตั้งค่าเป็น: localhost: 8081

มันใช้งานได้สำหรับฉัน


ขอบคุณ! ทำงานให้ฉัน
— Howard

7

หลังจากลองค้นหาคำตอบที่นี่แล้วนี่คือสิ่งที่ใช้ได้กับฉัน

ฉันใช้ Genymotion เป็นตัวเลียนแบบ

1 เริ่มต้นโปรแกรมจำลอง Genymotion

2 จากอาคารผู้โดยสาร

cd AwesomeProject
react-native run-android # it loads in genymotion and fails with bundle error
react-native start > /dev/null 2>&1 & # from dsissitka
adb reverse tcp:8081 tcp:8081 # from dsissitka

3 โหลดซ้ำจากโปรแกรมจำลอง

มันโหลด!

ฉันสามารถเริ่มพัฒนาได้แล้ว


ได้รับ "ข้อผิดพลาด: ปิด" สองครั้งใน "adb reverse"
— almeynman

FYI: ตอนนี้ฉันกำลังทำข้างต้นด้วยคำตอบ "Daniel Masarin" ของการตั้งค่าโฮสต์เซิร์ฟเวอร์ debug เป็นที่อยู่ WiFi ของฉันที่มีพอร์ต 8081 มันทำงานกับ RN v 0.17.0
— ooolala

ขอบคุณมากสำหรับฉันนี้ :) บน API 21+ ข้างต้นใช้งานได้เท่านั้น
— Ashwini Bhat

4

ลบแอพออกจากโทรศัพท์ของคุณ! ฉันลองหลายขั้นตอน แต่มันก็ทำในที่สุด

  1. หากคุณพยายามเรียกใช้แอพก่อนหน้านี้ แต่ล้มเหลวให้ลบออกจากอุปกรณ์ Android
  2. วิ่ง $ react-native run-android
  3. เปิด React Rage เมนู Shake จากภายในแอปของคุณบนอุปกรณ์ Android ของคุณไปแล้วDev Settings Debug server host & port for deviceมีใส่เซิร์ฟเวอร์ของคุณ IP (IP ของคอมพิวเตอร์ของคุณ) และโฮสต์เช่น8081 192.168.50.35:8081บน Mac คุณสามารถหา IP System Preferences -> Network -> Advanced... -> TCP/IP -> IPv4 Addressของคอมพิวเตอร์ของคุณที่
  4. Reload JSเปิดโกรธเขย่าเมนูอีกครั้งและคลิก


2

ฉันไม่มีชื่อเสียงพอที่จะแสดงความคิดเห็น แต่นี่หมายถึงคำตอบของ dsissitka มันใช้งานได้บน Windows 10 เช่นกัน

เพื่อย้ำคำสั่งคือ:

cd (App Dir)
react-native start > /dev/null 2>&1 &
adb reverse tcp:8081 tcp:8081

2

นี่คือขั้นตอนง่าย ๆ ในการรันแอพของคุณบน Android (รีลีส):

1. ไปที่รูทแอปพลิเคชันของคุณ

2. เรียกใช้คำสั่งนี้

กำรตอบสนองพื้นเมืองกำ - แพลตฟอร์ม Android - เดฟเท็จ - ผู้เข้าร่วมไฟล์ index.android.js - กลุ่มเอาท์พุท android / app / src / หลัก / สินทรัพย์ / index.android.bundle - ชุดหุ่นยนต์ dest-android / src / หลักความละเอียด /

ไฟล์ทั้งหมดของคุณจะถูกคัดลอก

3. สร้าง APK ที่ลงชื่อแล้ว

เปิด android studio

สร้าง> สร้าง APK ที่ลงชื่อแล้ว> [กรอกรายละเอียดที่จำเป็นต้องสร้างการกดแป้นก่อนที่ขั้นตอนนี้]

APK ของคุณควรสร้างโดยไม่มีข้อผิดพลาด ติดตั้งบนอุปกรณ์ของคุณและสิ่งนี้จะทำงานได้โดยไม่มีปัญหาใด ๆ

คุณยังสามารถเชื่อมต่ออุปกรณ์ของคุณและกดไอคอนเรียกใช้บน android studio สำหรับการทดสอบ


สร้างการกดแป้นพิมพ์:

  1. ไปที่C: \ Program Files \ Java \ jdkx.x.x_x \ bin

  2. วิ่ง

keytool -genkey -v -keystore d: \ my_private_key.keystore -alias my-key-alias -keyalg RSA -keys 2048 - ความละเอียด 10000

มันอาจจะขอให้คุณกรอกรายละเอียดบางอย่าง ทำและมีไฟล์ keystroke ของคุณ ( my_private_key.keystore ) ซึ่งสามารถใช้เพื่อลงชื่อ apk ของคุณ


หลังจากที่react-native bundleฉันได้รับข้อผิดพลาด: แหล่งข้อมูลที่ซ้ำกัน
— Amir Shabani

1

ฉันได้รับสิ่งนี้บน Linux หลังจากหยุดreact-native run-androidกระบวนการ ดูเหมือนว่าโหนดเซิร์ฟเวอร์ยังคงทำงานอยู่ดังนั้นในครั้งต่อไปที่คุณเรียกใช้เซิร์ฟเวอร์จะทำงานไม่ถูกต้องและแอปของคุณไม่สามารถเชื่อมต่อได้

การแก้ไขที่นี่คือการฆ่ากระบวนการโหนดที่กำลังทำงานอยู่ใน Xterm ที่คุณสามารถฆ่าโดยctrl-cไอเอ็นจีหน้าต่างที่ (ง่าย) หรือคุณสามารถค้นหาได้ใช้แล้วlsof -n -i4TCP:8081kill -9 PID

จากนั้นเรียกใช้react-native run-androidอีกครั้ง


1

ตรวจสอบการเชื่อมต่อ wifi ของคุณ

ความเป็นไปได้อีกอย่างหนึ่งก็คือคุณไม่ได้เชื่อมต่อกับ WiFi เชื่อมต่อกับเครือข่ายผิดหรือที่อยู่ IP ไม่ถูกต้องในการตั้งค่า dev ของคุณ ด้วยเหตุผลบางอย่างหุ่นยนต์ของฉันถูกตัดการเชื่อมต่อจาก wifi และฉันเริ่มได้รับข้อผิดพลาดนี้โดยไม่รู้ตัว


ขอบคุณนั่นมัน โดยค่าเริ่มต้นเซิร์ฟเวอร์ Debug จะเข้าถึงเครือข่ายท้องถิ่น ดังนั้นหากคุณไม่มีการเข้าถึง wifi คุณจะไม่สามารถเข้าถึงได้
— พอล

1

ทำงานบนอุปกรณ์

ฉันได้พบคำตอบอื่น

  • adb reverse: ใช้ได้กับ Android 5.0+ (API 21) เท่านั้น
  • อื่น: เปิดเมนูนักพัฒนาโดยการเขย่าอุปกรณ์ไปที่การตั้งค่า Dev , ไปที่Debug โฮสต์เซิร์ฟเวอร์สำหรับอุปกรณ์พิมพ์ที่อยู่IP ของเครื่องและพอร์ตของเซิร์ฟเวอร์ dev ในเครื่องของคุณ

1

การปรับปรุง

ตอนนี้บน windows ไม่จำเป็นต้องเรียกใช้เริ่มต้นปฏิกิริยาพื้นเมือง หีบห่อจะทำงานโดยอัตโนมัติ


1

สิ่งสำคัญอย่างหนึ่งในการตรวจสอบว่ายังไม่มีใครพูดถึง: ตรวจสอบไฟร์วอลล์ในเครื่องของคุณตรวจสอบให้แน่ใจว่าปิดอยู่

ดูคำตอบของฉันที่นี่: https://stackoverflow.com/a/41400708/1459275


0

ฉันใช้ Ubuntu และ Android เท่านั้นและฉันไม่สามารถใช้งานได้ ฉันพบโซลูชันที่ง่ายมากซึ่งคือการอัพเดตไฟล์ package.json ของคุณโดยเปลี่ยนบรรทัดนี้:

"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },

ถึง

"scripts": {
    "start": "adb reverse tcp:8081 tcp:8081 && node node_modules/react-native/local-cli/cli.js start"
  },

จากนั้นคุณเรียกใช้เซิร์ฟเวอร์โดยพิมพ์

npm run start

สิ่งนี้ทำให้แน่ใจว่าอุปกรณ์ android ค้นหาเซิร์ฟเวอร์โหนดบนคอมพิวเตอร์ของคุณแทนที่จะเป็นโลคัลบนโทรศัพท์


0

คำถามแรกได้รับเกี่ยวกับการโหลดแอพลิเคชันในอุปกรณ์ phyisical

เมื่อคุณทำการดีบั๊กแอปพลิเคชันในอุปกรณ์ทางกายภาพ (เช่นผ่าน adb) คุณสามารถโหลดชุดบันเดิล JS อีกครั้งโดยคลิกที่ปุ่ม "การกระทำ" บนซ้ายของอุปกรณ์ของคุณ จะเป็นการเปิดเมนูตัวเลือก (โหลดใหม่, ดีบัก JS จากระยะไกล ... )

หวังว่านี่จะช่วยได้


0

ข้อผิดพลาดนี้สามารถแก้ไขได้อย่างง่ายดายโดยทำตามขั้นตอนต่อไปนี้:

    //run the command at /android sdk / platforms-tool folder
        adb reverse tcp:8081 tcp:8081

    //now come to root folder of your app
    1. npm start
    2. create 'assets' folder inside rootApp/android/app/src/main/
    3. curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
    4. make sure anyone physical or virtual device attached is running.
    5. react-native run-android

1
ฉันสามารถรันadb reverse tcp:8081 tcp:8081ในโฟลเดอร์รูทของแอพได้หรือไม่
— Marson Mao

ค้นหาโฟลเดอร์ adb ในระบบปฏิบัติการของคุณ มันอยู่ใน Android SDK / เครื่องมือแพลตฟอร์ม /
— Atif Hussain

1
แต่ฉันเห็นหลายสถานที่ที่อ้างว่าคำสั่งนี้สามารถเรียกใช้ที่โฟลเดอร์รูทของแอพได้คำตอบจาก dsissitka แสดงให้เห็นว่ารันในโฟลเดอร์แอปรูทดังนั้นฉันจึงสับสนจริงๆ
— Marson Mao

อาจเป็นคำสั่งนี้จัดการโดยตอบสนองพื้นเมืองเกินไป ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ แต่ adb ได้รับการสนับสนุนโดย android sdk tools คุณสามารถค้นหารายละเอียดเพิ่มเติมได้ที่นี่facebook.github.io/react-native/docs/…
— Atif Hussain

1
@MarsonMao คุณอาจสามารถเรียกใช้ adb จากไดเรกทอรีแอปของคุณได้ อ่านเพิ่มเติมเกี่ยวกับตัวแปร PATH และแพคเกจทั่วโลกกับท้องถิ่นสำหรับข้อมูลเพิ่มเติม
— mchandleraz

0

คุณสามารถปฏิบัติตามคำแนะนำที่ระบุไว้ในหน้าอย่างเป็นทางการเพื่อแก้ไขปัญหานี้ ปัญหานี้เกิดขึ้นบนอุปกรณ์จริงเนื่องจากชุดบันเดิล JS อยู่ในระบบการพัฒนาของคุณและแอปที่อยู่ในอุปกรณ์จริงของคุณไม่ทราบตำแหน่ง


0

ใน React Native ใหม่ (แน่นอนว่า 0.59) การกำหนดค่าการดีบักอยู่ภายใน android/app/src/debug/res/xml/react_native_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="false">localhost</domain>
    <domain includeSubdomains="false">10.0.2.2</domain>
    <domain includeSubdomains="false">10.0.3.2</domain>
  </domain-config>
</network-security-config>

0

เริ่มต้นเทอร์มินัลสองตัวบนเทอร์มินัลตัวเดียวกันและตัวที่ 1 รันการตอบสนองแบบเนทีฟแบบดั้งเดิม และขอให้โชคดี


0

เดี๋ยวก่อนฉันกำลังเผชิญปัญหานี้กับโครงการเปล่าตอบสนองพื้นเมืองของฉันจำลอง IOS ทำงานได้ดี แต่ Android ยังคงให้ข้อผิดพลาดนี้ให้ฉัน นี่เป็นวิธีแก้ปัญหาที่เป็นไปได้สำหรับฉัน

ขั้นตอนที่ 1 ตรวจสอบว่าอุปกรณ์ adb ได้รับอนุญาตจากการรันในเทอร์มินัลของคุณ: อุปกรณ์ adb

หากไม่ได้รับอนุญาตให้รันคำสั่งต่อไปนี้

ขั้นตอนที่ 2, sudo adb kill-server ขั้นตอนที่ 3, sudo adb start-server

จากนั้นตรวจสอบว่าคำสั่ง adb devices แสดงรายการอุปกรณ์ที่เชื่อมต่อกับ emulator-5554 หรือไม่

แทนการไม่ได้รับอนุญาตหากเป็นอุปกรณ์แทนการไม่ได้รับอนุญาต

ขั้นตอนที่ 4 เรียกใช้ npx react-native run-android

สิ่งนี้ได้ผลในตัวอย่างของฉันฉันหวังว่านี่จะช่วยแก้ปัญหาของคุณ


0

ฉันพบว่าสิ่งนี้แปลก แต่ฉันมีทางออก ฉันสังเกตเห็นว่าทุกครั้งในขณะที่โฟลเดอร์โครงการของฉันเป็นแบบอ่านอย่างเดียวและฉันไม่สามารถบันทึกได้จาก VS ดังนั้นฉันจึงอ่านคำแนะนำเพื่อถ่ายโอน NPM จากผู้ใช้ท้องถิ่นไปยังตัวแปรทั่วโลกของระบบ PATH และมันทำงานได้อย่างมีเสน่ห์


-1

การเรียกใช้npm เริ่มต้นจากไดเรกทอรีที่มีปฏิกิริยาตอบสนองได้ผลสำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.