ไม่สามารถโหลดสคริปต์จาก asset index.android.bundle บน windows


357

ฉันพยายามเรียกใช้โปรเจค React Native ครั้งแรกเป็นครั้งแรกบนอุปกรณ์ของฉัน (Android 4.2.2)

และฉันได้รับ:

ไม่สามารถโหลดสคริปต์จากสินทรัพย์ index.android.bundle

คำสั่งที่ฉันใช้:

  1. cd (project directory)
  2. react-native start
  3. react-native run-android

6
ก่อนที่จะลองคำตอบของ jerry ก่อนอื่นให้ตรวจสอบก่อนว่าคุณได้ตั้งค่า ANDROID_HOME ในตัวแปรสภาพแวดล้อมและในพา ธ เครื่องมือแพลตฟอร์ม
Sagar Chavada

มันเป็นข้อบกพร่องในรุ่นล่าสุด คุณต้องใช้รุ่นก่อนหน้าโดยใช้ ProjectName - native รุ่นพื้นเมือง --version = 0.55.4 โดยใช้แบบดั้งเดิม - พื้นเมืองควรได้รับการแก้ไขปัญหา
Sulung Nugroho

ข้อผิดพลาดเดียวกันบริบทเดียวกัน แต่การแก้ไขนั้นง่าย: รอให้เซิร์ฟเวอร์ดีบั๊กเปลี่ยนจากLoading dependency graph...เป็นLoading dependency graph, doneและกดโหลดซ้ำบนแอป
Nino Filiu

คำตอบที่ได้รับการยอมรับคือการแฮ็คที่ไม่สะดวกอย่างยิ่งซึ่งจะทำให้กระบวนการสร้างและโค้ดฐานมีความซับซ้อน มีคำตอบที่ดีกว่าอยู่ที่นี่
Andrew Koster

ใช้mkdir ... /assets && react-native bundle --platform..ไม่สามารถแก้ปัญหานี้ได้อย่างสมบูรณ์, ตรวจสอบสิ่งนี้: stackoverflow.com/a/55511803/10139109
Ian Zhong

คำตอบ:


947

ฉันพบปัญหาเดียวกันในขณะที่ติดตามการสอนตามพื้นเมือง(การพัฒนาบน 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

คุณสามารถทำให้ขั้นตอนข้างต้นเป็นแบบอัตโนมัติได้โดยวางไว้ในscriptsส่วนของpackage.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จากบรรทัดคำสั่งของคุณทุกครั้ง


15
ถ้าเราต้องการแก้ไขไฟล์index.android.jsล่ะ ทุกครั้งในเทอร์มินัลเราต้องแทรกคำสั่ง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
Maulik

9
มันจะติดอยู่Loading dependency graph...ทุกครั้งเมื่อฉันรันใหม่จากเทอร์มินัลและใช้เวลานานเกินไป FYI ฉันใช้ Ubuntu 14.04
Maulik

12
ตอบโต้เวอร์ชันใหม่ล่าสุดที่เป็นภาษาดั้งเดิมไม่มี index.android.js ดังนั้นโปรดใช้ App.js ด้วยคำสั่ง :) ขอบคุณ
Chinthaka Dinadasa

11
@ChinakaDinadasa ในกรณีของฉันมันindex.jsไม่ใช่App.js
เฟลิกซ์

11
ผู้ชายคนนี้ต้องการรูปปั้น! ฉันหมายความว่ามันใช้งานได้จริงไม่เพียง แต่บน linux แต่บน windows 10 ด้วย
Reborn

126

หากคุณใช้งานแอปพลิเคชันของคุณบนอุปกรณ์จริงและรับข้อผิดพลาดนี้

unable to load script from assets index.android.bundle

ลองรันคำสั่ง:

adb reverse tcp:8081 tcp:8081

มันเหมาะสำหรับฉัน ...


นี่เป็นการแก้ไขปัญหาของฉัน! ขอบคุณ!
Pablo

7
ทำงานให้ฉัน สำหรับผู้ที่ไม่มีเครื่องมือแพลตฟอร์ม Android บนเทอร์มินัลพา ธ ของคุณใน windows ปฏิบัติการ adb นั้นอยู่ใน 'C: \ Users \ YourUser \ AppData \ Local \ Android \ sdk \ platform-tools'
Mikepote

2
ฉันคิดว่านี่ควรเป็นคำตอบที่ถูกต้องอีกอันหนึ่งดูเหมือนแฮ็ค
Cristian Gomez

2
สิ่งนี้ไม่ได้ผลสำหรับฉัน (ใน macOS)
szx

วิธีนี้แก้ไขปัญหาสำหรับฉัน (Windows ที่เรียกใช้แอปบนอุปกรณ์ทางกายภาพ) เป็นหนึ่งในการแก้ไขที่แนะนำในกล่องข้อผิดพลาดสีแดง
Tur1ng

101

ฉันใช้เวลาหลายชั่วโมงเพื่อหาทางแก้ไขปัญหานี้ ปัญหาของฉันไม่เฉพาะเจาะจงกับ Windows แต่เฉพาะกับ Android

การเข้าถึงเซิร์ฟเวอร์การพัฒนาทำงานได้ทั้งในและในเบราว์เซอร์ของโปรแกรมจำลอง สิ่งเดียวที่ไม่ทำงานคือการเข้าถึงเซิร์ฟเวอร์การพัฒนาในแอป

เริ่มต้นด้วย Android 9.0 (ระดับ API 28) การสนับสนุน cleartext จะถูกปิดใช้งานตามค่าเริ่มต้น

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>

ดูข้อมูลเพิ่มเติมได้ที่: https://stackoverflow.com/a/50834600/1713216


11
ขอบคุณ. นี่เป็นปัญหาของฉันหลังจากการอัพเกรดไปtargetSdkVersion 28
bencergazda

นี่คือคำตอบที่ถูกต้อง มันแก้ไขปัญหาการสื่อสารเครือข่ายได้จริง
Andrew Koster

นี้เป็นวิธีการที่ใช้ในการตอบสนอง v0.59.2
Tur1ng

ขอบคุณที่ตั้งค่าสถานะนี้ - ทำให้แอป RN ของฉันโหลดไม่ได้ น่าผิดหวังที่ไม่มีข้อผิดพลาดในการส่งข้อความดีกว่า: /
greg7gkb

2
Works! ถ้าฉันเห็นคุณด้วยตัวเองฉันจะให้เหรียญแก่คุณ (-:
Yaron Levi

61

การใช้ npm เวอร์ชัน 4.3.0 react-native-cli เวอร์ชัน 2.01 react-native เวอร์ชั่น 0.49.5

ในไดเรกทอรีโครงการ

  • mkdir android/app/src/main/assets
  • 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

ชื่อไฟล์นั้นเปลี่ยนจากindex.android.jsเป็นindex.js


3
ค่อนข้างเศร้าที่ FB เปิดตัวเวอร์ชั่นใหม่และแทนที่จะแก้ไขข้อผิดพลาดนี้ซึ่งเห็นได้ชัดว่ามีผู้คนมากมายเข้ามาแทนที่พวกเขา - พวกเขาทำลายการทำงานที่เป็นที่ยอมรับ!
Tom

@IgorGanapolsky ตรวจสอบให้แน่ใจว่าคุณมีไฟล์ index.bundle ในโฟลเดอร์ทรัพย์สินของคุณ
Darshan Pania

@DarshanPania ไฟล์นั้นทำอะไร?
IgorGanapolsky

3
@IgorGanapolsky ไฟล์ JS นั้นเป็นจุดเริ่มต้นในแอปของคุณ จาก RN 0.49 เป็นต้นไปมีเพียงหนึ่งไฟล์index.jsแทนindex.android.jsหรือindex.ios.js
Darshan Pania

1
สำหรับ linux:sudo 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
Taohidul Islam

42

ฉันประสบปัญหาเดียวกันกับอุปกรณ์ Android จริง

โซลูชัน: อิงตามคำตอบนี้โดย Niltoid

  1. ค้นหา IP ท้องถิ่นของคุณ
  2. เปิดแอพและเขย่าอุปกรณ์ Android ของคุณ
  3. ไปที่การตั้งค่า Dev และ> ดีบักเซิร์ฟเวอร์ ...
  4. วาง IP และพอร์ตของคุณ XXXX: 8088 "(โดยที่ X ใช้ IP ท้องถิ่นของคุณ)

สำหรับผู้ใช้ Mac: เปิดการตั้งค่าเครือข่ายของคุณที่นี่คุณจะได้รับ IP ท้องถิ่นของคุณ


ทำงานให้ฉัน (y)
MAhipal Singh

22

หากคุณใช้ Windows ให้รันคำสั่งด้วยวิธีต่อไปนี้หรือหากคุณได้รับข้อผิดพลาด "ไม่พบไฟล์รายการ index.android.js"

  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


19

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


ฉันได้รับปัญหานี้เมื่อทำงานโดยตรงจาก android studio ใช้react-native run-androidซ่อมมัน
yairsz

7
ลิงก์ของคุณไม่ทำงานอีกต่อไปคุณควรอ้างอิงส่วนที่เป็นประโยชน์ที่สำคัญในอนาคตเพื่อให้ข้อมูลมีชีวิตอยู่หลังจากแหล่งที่มาของมันตาย
Zac Grierson

ดังนั้นวิธีการใช้งานบนอุปกรณ์จริง ?
IgorGanapolsky

1
@IgorGanapolsky ฉันมีปัญหาเดียวกันและแก้ไขด้วยเอกสารอย่างเป็นทางการคุณสามารถตรวจสอบสภาพแวดล้อมของคุณได้อย่างง่ายดายfacebook.github.io/react-native/docs/running-on-device.htmlฉันไม่สามารถโหลด porj จาก android studio (และ โฟลเดอร์ android) แต่ฉันสามารถทำได้ด้วยโฟลเดอร์รูทของโปรเจ็กต์และเทอร์มินัล
Ivan Titkov

15

มีปัญหาเดียวกันใน mac หลังจากใช้เวลา 2 วันในที่สุดฉันก็สามารถทำงานได้

ตั้งแต่ผมได้รับEmulator cellular data was turned offunable to load script from assets index.android.bundle make sure your bundle is running

ตรวจสอบให้แน่ใจว่าคุณEmulator cellular data is turned onทำแพคเกจเซิร์ฟเวอร์นี้สามารถรวมกลุ่มindex.android.jsได้ หวังว่าจะช่วยให้ใครบางคนที่อยู่ในช่วงการพัฒนา


คุณทำEmulator cellular data is turned onอะไรแม่ อยู่ที่ไหน อุปกรณ์เสมือนจริงหรือ อุปกรณ์จริงหรือ
สีเขียว

Emulator หมายถึงอุปกรณ์เสมือนจริงที่มาจาก android studio
Srinivas

13

ฉันมีปัญหาเดียวกันนี้มาหลายเดือนแล้ว ตอนแรกฉันใช้วิธีแก้ปัญหาของ @ Jerry นี่เป็นวิธีแก้ปัญหาที่ผิดเนื่องจากไม่ได้แก้ไขปัญหาอย่างเต็มที่ แต่สิ่งที่ทำก็คือการสร้างทุกครั้งในฐานะบิลด์การผลิตซึ่งหมายความว่าการเปลี่ยนแปลงเล็กน้อยที่คุณทำในแอพจะหมายความว่าจำเป็นต้องสร้างแอปใหม่ทั้งหมด

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

วิธีแก้ไขที่เหมาะสมแสดงดังต่อไปนี้:

ในMainApplication.javaไฟล์ของคุณให้แทนที่สิ่งต่อไปนี้:

@Override
public boolean getUseDeveloperSupport() {
    return BuildConfig.DEBUG;
}

กับ

@Override
public boolean getUseDeveloperSupport() {
    return true;
}

สำหรับเหตุผลบางอย่าง BuildConfig.DEBUGส่งคืนเท็จเสมอและส่งผลให้ไฟล์บันเดิลในไดเรกทอรีสินทรัพย์

ด้วยการตั้งค่านี้เป็นจริงด้วยตนเองคุณกำลังบังคับให้แอปใช้แพ็คเกจ WON นี้ไม่ทำงานในการผลิตดังนั้นให้แน่ใจว่าได้เปลี่ยนเป็นเท็จหรือค่าเริ่มต้น

อย่าลืมเรียกใช้ด้วย

$ adb reverse tcp:8081 tcp:8081

1
นี่คือทางออกที่แท้จริง ขอบคุณ!
keyserfaty

1
ศักดิ์สิทธิ์นี่คือทางออกที่แท้จริง คำตอบที่ยอมรับไม่ได้สำหรับการโหลดซ้ำร้อนและไม่สามารถแก้ไขปัญหาได้อย่างถูกกฎหมาย
Ganesh Datta

11

1 ไปที่ไดเรกทอรีโครงการของคุณและตรวจสอบว่ามีโฟลเดอร์นี้อยู่หรือไม่ android/app/src/main/assets

  1. หากมีอยู่แล้วลบสองไฟล์ ได้แก่ index.android.bundleและindex.android.bundle.meta
  2. หากไม่มีโฟลเดอร์สินทรัพย์ให้สร้างไดเรกทอรีสินทรัพย์ที่นั่น

2. จากไดเรกทอรีโครงการรูทของคุณ

cd android && ./gradlew clean

3. ในที่สุดนำทางกลับไปที่ไดเรกทอรีรากและตรวจสอบว่ามีไฟล์รายการเดียวที่เรียกว่าindex.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

  • หากมีสองไฟล์คือ index.android.js และ index.ios.js ให้รันไฟล์นี้ 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

    1. ตอนนี้ทำงาน react-native run-android

หลังจากลองสถานการณ์เหล่านี้เกือบทั้งหมด ... นี่เป็นทางออกเดียวที่เหมาะกับฉัน ขอบคุณ!!!!
MizAkita

สิ่งนี้ใช้ได้สำหรับฉันหลังจากพบข้อผิดพลาดนี้หลังจากทำตามคู่มือเริ่มต้นใช้งานบน Ubuntu 18.04 ขอบคุณ!
ทำลาย

นั่นใช้ได้สำหรับฉันใน Mac os Catalina ขอบคุณ
Hitesh

9

ระบบปฏิบัติการ: Windows

อีกวิธีหนึ่งในการแก้ไขปัญหานี้หลังจากลองสองวิธีข้างต้น
(เพราะฉันติดตั้ง SDK ไม่ได้อยู่ในที่ตั้งเริ่มต้นเช่น C: \ users \ "user_name" \ appdata \ local \ sdk )

หากคุณสังเกตเห็นว่าบรรทัดคำสั่งประกาศ: "'adb' ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก ... "

ดังนั้นนี่คือวิธีที่ฉันได้รับ:
ตัวอย่าง: ฉันติดตั้ง SDK ใน D: \ Android \ sdk
ดังนั้นฉันจะแทรกเส้นทางในตัวแปรของระบบอีก 2 บรรทัด:

D:\Android\sdk\tools  
D:\Android\sdk\platform-tools  

(หากคุณไม่ทราบวิธีการแก้ไขเส้นทางตัวแปรของระบบนี่คือหัวข้อ: /android/38321/what-do-i-ty----pe-variable-for-adb- เซิร์ฟเวอร์เพื่อเริ่มจาก cmd / 38324 )

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

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


แม้ว่าจะไม่ได้เชื่อมต่อกันจริงๆ - นี่เป็นหนึ่งในปัญหาที่พบบ่อยมากและใช้งานได้ตามที่อธิบายไว้
Pixelartist

8

ในกรณีของฉันฉันได้ลบบรรทัดด้านล่างออกจาก MainApplication.java (ซึ่งฉันเพิ่มก่อนหน้านี้อย่างผิดพลาด) : -

นำเข้า com.facebook.react.BuildConfig;

หลังจากนั้น Clean Project และกดคำสั่ง

react-native run-android


ขอบคุณมันช่วยฉันด้วย
Anil Ravsaheb Ghodake

6

สำหรับIOS:

ในอาคารผู้โดยสาร:

cd ios

ลบโฟลเดอร์บิลด์ด้วย: rm -r build

ทำงานอีกครั้ง: react-native run-ios

หรือคุณสามารถเปิด Finder นำทางไปยังYOUR_PROJECT / iOSและลบสร้าง โฟลเดอร์โฟลเดอร์

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

สำหรับAndroid:

ในอาคารผู้โดยสาร:

cd android/app

ลบโฟลเดอร์บิลด์ด้วย: rm -r build

ทำงานอีกครั้ง: react-native run-android

หรือคุณสามารถเปิด Finder นำทางไปยังYOUR_PROJECT / Android / แอปและลบสร้าง โฟลเดอร์

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


2
ใช้งานได้กับ Android! ทำความสะอาดและง่าย!
llioor

การลบandroid/app/binโฟลเดอร์ใน Windows ก็ทำได้เช่นกัน ฉันสร้างโครงการโดยตรงจาก Android Studio แทนที่จะทำงานreact-native run-androidและดูเหมือนว่ามันจะสร้างสิ่งผิดปกติที่ฉันต้องลบด้วยตนเอง
Lucas Bustamante

5

สำหรับปัญหานี้ฉันแค่แก้มันด้วยการวิ่ง:

react-native start

แล้วก็

adb reverse tcp:8081 tcp:8081

บนบรรทัดคำสั่ง จากนั้นฉันก็สามารถเรียกใช้:

react-native run-android

ดังนั้นฉันจะไม่เสียเวลาในการทำงาน:

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

ทุกเวลา.


5

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

ขั้นตอนที่ 1:ก่อนอื่นเปิด cmd และไปที่โฟลเดอร์เครื่องมือจัดการแพลตฟอร์ม SDK ของคุณ

cd C:Development\Android\Sdk\Platform-tools

ขั้นตอนที่ 2 : ตอนนี้รันคำสั่งนี้:

adb devices

หลังจากคำสั่งนี้ตรวจสอบอุปกรณ์ของคุณในรายการพร้อมรับคำสั่ง

ขั้นตอนที่ 3 : เรียกใช้สิ่งนี้

adb reverse tcp:8081 tcp:8081

ตอนนี้การตั้งค่าของคุณเสร็จแล้ว

ขั้นตอนที่ 4 : ไปที่ไดเรกทอรีโครงการของคุณและเรียกใช้คำสั่งนี้

react-native run-android

4

อูบุนตู

ครั้งแรกที่ฉันสร้าง app react-native init project-nameใหม่ที่มี ฉันได้รับข้อผิดพลาดเดียวกัน ดังนั้นฉันทำตามขั้นตอนต่อไปนี้เพื่อแก้ไขในกรณีของฉัน

  1. ทำงานครั้งแรกsudo chown user-name-of-pc /dev/kvmในกรณีของฉัน
  2. ในขณะที่การแก้จุดบกพร่องจากโทรศัพท์ Android Use USB to Transfer photos (PTP)ของคุณเลือก

  3. สร้างโฟลเดอร์assetsใน project-name / android / app / src / main

  4. ตรวจสอบให้แน่ใจindex.jsavaiable ในroot ไดเรกทอรีโครงการของคุณแล้วเรียกใช้คำสั่งด้านล่างจากคอนโซลหลังจากcd project-nameไดเรกทอรี

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

หรือสำหรับ index.android.js ตอนนั้น

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

  1. เรียกใช้คำสั่ง./studio.shในandroid-studio/binไดเรกทอรี มันจะเปิดขึ้นใน Android Studio

  2. react-native run-androidคำสั่งการทำงาน

ป้อนคำอธิบายรูปภาพที่นี่


4

ตรวจสอบให้แน่ใจว่าตัวสร้าง metro กำลังทำงานเพื่อทำให้อุปกรณ์ทางกายภาพและเซิร์ฟเวอร์ของคุณตรงกัน

ก่อนอื่นให้เรียกใช้คำสั่งนี้เพื่อเรียกใช้ตัวสร้างรถไฟฟ้าใต้ดิน

เริ่มต้นนาที

จากนั้นคุณสามารถเริ่มสร้างในพื้นเมืองตอบสนอง

react-native run-android

พวกเขาไม่ควรผิดพลาดในครั้งนี้ หากคุณต้องการให้รหัสของคุณโหลดซ้ำเมื่อมีการเปลี่ยนแปลง เขย่าอุปกรณ์ของคุณแล้วแตะเปิดใช้งานการโหลดซ้ำสด


3

ตรวจสอบให้แน่ใจว่าคุณได้เพิ่ม / path / to / sdk / platform-tools ไปยังตัวแปร path ของคุณ

เมื่อคุณเรียกใช้ react-native run-android มันจะเรียกใช้คำสั่ง adb reverse tcp: <device-port> tcp: <local-port> เพื่อส่งต่อคำร้องขอจากอุปกรณ์ของคุณไปยังเซิร์ฟเวอร์ที่ทำงานอยู่ภายในเครื่องคอมพิวเตอร์ของคุณ คุณจะเห็นสิ่งนี้หากไม่พบ adb

/bin/sh: 1: adb: not found
Starting the app (.../platform-tools/adb shell am start -n 
com.first_app/com.first_app.MainActivity...
Starting: Intent { cmp=com.first_app/.MainActivity }

นี่ควรจะเป็นคำตอบที่ถูกโหวตมากที่สุดอย่างที่ควรจะเป็นหนึ่งในสิ่งแรกที่ควรตรวจสอบ
20658 eis

3

อาจเกิดจากสินทรัพย์ที่ไม่ได้เชื่อมโยงในฐานรหัสโครงการตอบโต้ของคุณเช่นเมื่อคุณเปลี่ยนชื่อแอปพลิเคชันโครงการ / รหัสกลุ่มหรือเพิ่มแพ็คเกจภายนอกโดยไม่มีการเชื่อมโยงอย่างถูกต้องตัวอย่างเช่น

ลองใช้ในไดเรกทอรีรากโครงการของคุณ:

react-native link

react-native run-android

2

หากเมื่อรันreact-native run-androidคำสั่งบรรทัดที่สองของการติดตามคือ

JS server not recognized, continuing with build...

มันหมายความว่าตัวบรรจุหีบห่อสำหรับแอปไม่สามารถเริ่มต้นได้และแอปจะไม่สามารถโหลดได้โดยไม่มีขั้นตอนพิเศษบางอย่าง โปรดทราบว่าการสิ้นสุดการติดตามยังคงรายงานความสำเร็จ:

BUILD SUCCESSFUL

ปัญหาน่าจะเป็นข้อขัดแย้งของพอร์ต (ในกรณีของฉันมันเป็นไซต์ IIS เริ่มต้นที่ฉันลืมไปหมด) การรวมตัวกันของปัญหาก็คือความล้มเหลวในการเปิดhttp://localhost:8081/debugger-ui URL ใน Chrome

เมื่อแก้ไขความขัดแย้งของพอร์ตแล้วการติดตามจะรายงาน

Starting JS server...

จากนั้นหน้าต่าง Node เพิ่มเติมจะเปิดขึ้น ( node ...cli.js start) และแอปจะโหลด / โหลดซ้ำสำเร็จ

หลังจากนั้นคุณจะสามารถเปิดดีบักคอนโซลใน Chrome http://localhost:8081/debugger-uiได้


2

ฉันมีปัญหาเดียวกันแม้จะทำงานในโปรแกรมจำลอง ฉันทำการแก้ปัญหาอย่างรวดเร็วเพื่อที่ฉันจะได้มีขั้นตอนการทำงานตามปกติ

private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
  @Override
  public boolean getUseDeveloperSupport() {
    // return true here to load JS from the packager
    // BuildConfig.DEBUG for me was set to false which meant it
    // it was always trying to load the assets from assets folder.
    return true;
  }

  @Override
  protected String getJSMainModuleName() {
    return "index";
  }
};

อาจจะต้องยกเลิกการเปลี่ยนแปลงเมื่อพยายามทำบิลด์การผลิต


2

ฉันมีปัญหากับ McAfee บน mac block พอร์ต 8081 ของฉันต้องเปลี่ยนเป็น 8082

เรียกใช้เซิร์ฟเวอร์แพคเกจของคุณก่อน:

react-native start --port 8082

เปิดเทอร์มินัลอื่นเริ่มแอพ android ตามปกติ:

react-native run-android

เมื่อเสร็จสิ้นแล้วให้เขียนพอร์ต tcp อีกครั้งที่ adb tunnels:

adb reverse tcp:8081 tcp:8082

ดูรายการของ adb tcp tunnels:

adb reverse --list

ตอนนี้คุณควรเห็นข้อความที่เป็นมิตร:

(reverse) tcp:8081 tcp:8082

ไปที่แอพของคุณแล้วโหลดใหม่เสร็จสิ้น!

PS: อย่าเปลี่ยนแปลงอะไรในการตั้งค่า Dev ของแอพหากคุณเพิ่ม "localhost: 8082" เพียงแค่ลบมันทิ้งไว้เปล่า ๆ

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

sudo launchctl remove com.mcafee.agent.macmn

2

ฉันคิดว่าคุณไม่มีเส้นด้ายติดตั้งลองติดตั้งด้วย chocolatey หรืออะไรบางอย่าง มันควรจะติดตั้งก่อนที่จะสร้างโครงการของคุณ (คำสั่ง init ปฏิกิริยาพื้นเมือง

ไม่จำเป็นต้องสร้างไดเรกทอรีสินทรัพย์

ตอบถ้ามันไม่ทำงาน

แก้ไข: ในเวอร์ชันล่าสุดของ react-native พวกเขาได้แก้ไขแล้ว หากคุณต้องการอิสระอย่างเต็มที่จากเพียงแค่ถอนการติดตั้งโหนด (สำหรับการถอนการติดตั้งอย่างสมบูรณ์ลบโหนดที่อ้างถึงลิงค์นี้อย่างสมบูรณ์ ) และติดตั้งโหนดใหม่ react-native-cli จากนั้นสร้างโครงการใหม่ของคุณ


2

อย่าลืมเปิดอินเทอร์เน็ตในอุปกรณ์จำลองผมได้ทำการแก้ไขข้อผิดพลาดนี้มันทำงานได้สมบูรณ์แบบ: V ฉันได้รับข้อผิดพลาดนี้เพราะฉันปิดอินเทอร์เน็ตเพื่อทดสอบ NetInfo: D


2

นี่เป็นข้อความแสดงข้อผิดพลาดทั่วไปคุณอาจพบระหว่างการพัฒนาแอปพลิเคชันดั้งเดิม ดังนั้นในบทช่วยสอนนี้เราจะให้วิธีแก้ปัญหานี้

คำอธิบายปัญหา: ไม่สามารถโหลดสคริปต์จาก asset index.android.bundle บน windows ไม่สามารถโหลดสคริปต์จาก asset index.android.bundle บน windows

ทำตามขั้นตอนด้านล่างเพื่อแก้ปัญหาดังกล่าว:

ขั้นตอนที่ 1: สร้างโฟลเดอร์ "ทรัพย์สิน" ในไดเรกทอรีโครงการของคุณตอนนี้สร้างโฟลเดอร์สินทรัพย์ภายในไดเรกทอรีโครงการที่เป็น "MobileApp \ android \ app \ src \ main" คุณสามารถสร้างโฟลเดอร์สินทรัพย์ได้ด้วยตนเอง:

<หรือ>

คุณสามารถสร้างโฟลเดอร์โดยใช้คำสั่งได้เช่นกัน คำสั่ง: mkdir android / app / src / main / assets

ขั้นตอนที่ 2: การเรียกใช้แอปพลิเคชันตอบโต้พื้นเมืองของคุณให้เรียกใช้คำสั่งด้านล่างเพื่อเรียกใช้แอปพลิเคชันเนทีฟแบบตอบโต้ในโปรแกรมจำลองหรืออุปกรณ์ทางกายภาพ

เปลี่ยนเป็นไดเรกทอรีโครงการ MobileApp ซีดี

เรียกใช้คำสั่งด้านล่างที่ช่วยในการรวมแอปพลิเคชัน Android ของคุณเข้าด้วยกัน

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

เรียกใช้ขั้นตอนสุดท้ายเพื่อเรียกใช้แอปพลิเคชั่นแบบเนทีฟในอีมูเลเตอร์หรืออุปกรณ์ทางกายภาพ react-native run-android

<หรือ>

นอกจากนี้คุณสามารถรวมสองคำสั่งสุดท้ายในหนึ่งเดียวในกรณีนี้คุณต้องดำเนินการคำสั่งเพียงครั้งเดียว

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

<หรือ>

คุณสามารถทำให้ขั้นตอนข้างต้นเป็นแบบอัตโนมัติได้โดยวางไว้ในส่วนสคริปต์ของ package.json ดังนี้:

"android-android": "ชุดการตอบสนองแบบเนทีฟ - แพลตฟอร์ม android --dev false - ร่วม - ไฟล์ index.js - การรวมเอาแอนดรอยด์ android / app / src / หลัก / สินทรัพย์ / index.android.bundle - ชุด - แอนดรอยด์ / แอพ / src / main / res && ตอบสนองการทำงานของแอนดรอยด์ดั้งเดิม "

หากการตั้งค่าทุกอย่างถูกต้องคุณควรเห็นแอปใหม่ของคุณทำงานในอุปกรณ์จำลอง Android ของคุณในไม่ช้า


2

ติดตามสิ่งนี้ได้ผลสำหรับฉัน

https://github.com/react-community/lottie-react-native/issues/269

ไปที่ไดเรกทอรีโครงการของคุณและตรวจสอบว่าโฟลเดอร์นี้มี android / app / src / main / assets i) ถ้ามีอยู่ให้ลบไฟล์สองไฟล์ ได้แก่ index.android.bundle และ index.android.bundle.meta ii) หากสินทรัพย์ของโฟลเดอร์ไม่ได้อยู่ ไม่มีอยู่แล้วสร้างไดเรกทอรีสินทรัพย์ที่นั่น

จากไดเรกทอรีโครงการรากของคุณให้ cd android && ./gradlew ล้าง

ในที่สุดนำทางกลับไปที่ไดเรกทอรีรากและตรวจสอบว่ามีไฟล์รายการเดียวที่เรียกว่า index.js i) หากมีเพียงหนึ่งไฟล์เช่น index.js จากนั้นเรียกใช้คำสั่งดังต่อไปนี้ตอบสนองปฏิกิริยามัดพื้นเมือง - แพลตฟอร์ม Android - เดฟเท็จ - -entry-file index.js --bundle-output android / app / src / main / asset / index.android.bundle - assets-dest android / app / src / main / res

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

ตอนนี้ให้เรียกใช้ react-native run-android


ความคิดเห็นของคุณช่วยฉันอย่างมาก ฉันไม่แน่ใจว่าทำไมต้องลบสองไฟล์บันเดิล แต่ทิศทางของคุณจะสมบูรณ์แบบ! ขอบคุณมาก!
VK1

2

ฉันเพิ่งพบปัญหาเดียวกันและแก้ไขมัน ดังนั้นหวังว่าจะเป็นประโยชน์

สมมติว่าคุณกำลัง assemblling ปล่อยแพคเกจโปรแกรมประยุกต์ (.apk)

  1. ตรวจสอบว่ามีโฟลเดอร์สินทรัพย์ของคุณอยู่หรือไม่: \ android \ app \ src \ main \ assets หากไม่ใช่ให้สร้างขึ้นใหม่

  2. หลังจากดำเนินการ "Assemble Release" ให้ตรวจสอบว่ามีสิ่งใดในโฟลเดอร์นั้น (\ android \ app \ src \ main \ assets) หากไม่พบให้ค้นหาไฟล์บันเดิล js ( index.android.bundle ) ซึ่งควรจะมากกว่าหนึ่งใน เส้นทางต่อไปนี้:

    * ก) \ หุ่นยนต์ \ แอป \ สร้าง \ ตัวกลาง \ merged_assets \ ปล่อย \ ออก \ index.android.bundle

    ข) \ หุ่นยนต์ \ แอป \ สร้าง \ ตัวกลาง \ merged_assets \ ปล่อย \ mergeReleaseAssets \ ออก \ index.android.bundle

    c) \ หุ่นยนต์ \ แอป \ สร้าง \ ตัวกลาง \ สินทรัพย์ \ ปล่อย \ index.android.bundle

    d) \ หุ่นยนต์ \ แอป \ สร้าง \ สร้าง \ สินทรัพย์ \ ตอบสนอง \ ปล่อย \ index.android.bundle *

วิธีที่ดีกว่าคือใช้ "ทุกอย่าง" เพื่อค้นหาชื่อไฟล์: index.android.bundle

  1. จากนั้นคัดลอกไฟล์นี้ลงในโฟลเดอร์ทรัพย์สินของคุณ (\ android \ app \ src \ main \ assets \ index.android.bundle)

  2. กลับไปที่ powershell หรือคอนโซลคำสั่งดำเนินการ:

react-native run-android --variant = release

มันควรจะทำงาน

โชคดี!


ขอบคุณมาก! ดิ้นรนเป็นเวลาสามวัน! Btw ตอบสนองพื้นเมือง 0.59 แก้ไขปัญหา
แอนนี่


1

ภาพ

ฉันกำลังเผชิญกับปัญหานี้การค้นหาจำนวนมากและฉันได้แก้ไขปัญหานั้นแล้ว

c:\ProjectFolder\ProjectName> 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

กว่าเรียกใช้พื้นเมืองตอบสนอง:

c:\ProjectFolder\ProjectName>react-native run-android


1
ภาพหน้าจอนั้นไม่เกี่ยวข้องกับคำตอบเล็กน้อย
Tyler

1

สำหรับพวกคุณทุกคนที่พัฒนาจากแอป create-native-native-ejected และมีปัญหาdevelopmentนี้และนี่คือสิ่งที่ใช้ได้ผลกับฉันเพียงเล็กน้อยจากคำตอบที่ได้รับการยอมรับ

(ในไดเรกทอรีโครงการ) mkdir android / app / src / main / asset

นี่คือส่วนที่เปลี่ยนแปลงเพราะคุณกำลังพัฒนากำจัด--dev: falseส่วนนี้:

กลุ่มปฏิกิริยาตอบสนอง - แพลตฟอร์ม Android - ผู้ร่วมไฟล์ index.js - กลุ่มเอาท์พุท android / app / src / หลัก / สินทรัพย์ / index.android.bundle - ชุดปลายทาง Android / app / src / main / res

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

(ในไดเรกทอรีโครงการ) npm ใช้ android

จะแจ้งให้ผู้ทำแพ็กเกจคอนโซล (ในเทอร์มินัลอื่น) และสร้างสำเร็จ

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