खिड़कियों पर संपत्ति index.android.bundle से स्क्रिप्ट लोड करने में असमर्थ


357

मैं अपने डिवाइस (Android 4.2.2) पर पहली बार अपना पहला रिएक्ट नेटिव प्रोजेक्ट चलाने की कोशिश कर रहा हूं।

और मुझे मिलता है:

संपत्ति सूचकांक से स्क्रिप्ट लोड करने में असमर्थ ।android.bundle

कमांड जो मैंने इस्तेमाल किया:

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

6
पहले जेरी के उत्तर की कोशिश करने से पहले u ने ANDROID_HOME को पर्यावरण चर और पथ प्लेटफ़ॉर्म-टूल में सेट किया।
सागर चावड़ा

यह हाल के संस्करण में एक बग है। आपको प्रतिक्रिया-मूल init ProjectName --version = 0.55.4 का उपयोग करके पिछले संस्करण का उपयोग करना होगा। समस्या ठीक होनी चाहिए।
सुलुंग नुगरहो

एक ही त्रुटि, एक ही संदर्भ, लेकिन फिक्स आसान है: ऐप से री-लोड हिट Loading dependency graph...करने के लिए डीबग सर्वर को बदलने Loading dependency graph, doneऔर प्रतीक्षा करने की प्रतीक्षा करें ।
नीनो फिलिउ

स्वीकृत उत्तर एक अत्यंत असुविधाजनक हैक है, जो निर्माण प्रक्रिया और कोड आधार को जटिल करता है। यहां बेहतर जवाब हैं।
एंड्रयू कोस्टर

का प्रयोग करें mkdir ... /assets && react-native bundle --platform..: पूरी तरह से इस समस्या को हल नहीं कर सकते, यह जाँच stackoverflow.com/a/55511803/10139109
इयान झोंग

जवाबों:


947

मैंने रिएक्ट नेटिव ट्यूटोरियल (लिनक्स पर विकास और एंड्रॉइड को लक्षित) करते हुए एक ही मुद्दे का सामना किया है ।

इस समस्या ने निम्नलिखित चरणों में समस्या को हल करने में मेरी मदद की।

  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
डालना होगा

9
यह Loading dependency graph...हर बार जब मैं इसे टर्मिनल से फिर से जमा करूँगा और इसमें बहुत अधिक समय लगेगा। FYI करें मैं ubuntu 14.04 का उपयोग कर रहा हूं
मौलिक

12
मूल निवासी नए संस्करणों में index.android.js शामिल नहीं है, इसलिए कमांड के साथ App.js का उपयोग करें। :) धन्यवाद
चिन्तका दिनदासा

11
@ चिन्तकाडिनदासा मेरे मामले में, यह index.jsनहीं हैApp.js
फेलिक्स

11
इस आदमी को एक मूर्ति चाहिए! मेरा मतलब है कि यह वास्तव में न केवल लिनक्स पर बल्कि विंडोज़ 10 पर भी काम करता है
पुनर्जन्म

126

यदि आप भौतिक डिवाइस पर अपना एप्लिकेशन चला रहे हैं और यह त्रुटि प्राप्त कर रहे हैं

unable to load script from assets index.android.bundle

कमांड चलाने का प्रयास करें:

adb reverse tcp:8081 tcp:8081

यह मेरे लिए workd ...


यह मेरा मुद्दा तय हो गया! धन्यवाद!
पाब्लो

7
मेरे लिए काम किया। उन लोगों के लिए जिनके पास खिड़कियों में अपने टर्मिनल पथ पर एंड्रॉइड प्लेटफ़ॉर्म टूल नहीं हैं, adb निष्पादन योग्य `C: \ Users \ YourUser \ AppData \ Local \ Android \ sdk \ platform-tools` में है
14

2
मुझे लगता है कि यह सही उत्तर होना चाहिए, अन्य एक हैक की तरह लगता है।
क्रिस्टियन गोमेज़

2
यह मेरे लिए काम नहीं किया (
macOS

इसने मेरे लिए समस्या (विंडोज, फिजिकल डिवाइस पर रनिंग ऐप) तय की। यह लाल त्रुटि बॉक्स पर सुझाए गए फ़िक्सेस में से एक है।
17

101

मैंने घंटों इस मुद्दे को जानने की कोशिश की। मेरी समस्या Windows के लिए विशिष्ट नहीं थी, लेकिन Android के लिए विशिष्ट है।

विकास सर्वर तक पहुंच स्थानीय स्तर पर और एमुलेटर के ब्राउज़र में काम करता है। केवल एक चीज जो काम नहीं करती थी वह ऐप में विकास सर्वर तक पहुंच थी।

एंड्रॉइड 9.0 (एपीआई स्तर 28) के साथ शुरू होने पर, स्पष्ट समर्थन डिफ़ॉल्ट रूप से अक्षम है।

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
बेनकग्रेजडा

यह सही जवाब है। यह वास्तव में नेटवर्क संचार समस्या को ठीक करता है।
एंड्रयू कोस्टर


इसे फ़्लैग करने के लिए धन्यवाद - मेरे RN ऐप को लोड होने से पूरी तरह से रोक रहा था। इस बात से निराश होना कि इसके आसपास बेहतर त्रुटि संदेश नहीं था: /
greg7gkb

2
काम करता है! अगर मैं आपको व्यक्तिगत रूप से देखता हूं, तो मैं आपको एक पदक (-:
यारन लेवी

61

एनपीएम संस्करण 4.3.0 प्रतिक्रिया-देशी-क्ली संस्करण 2.01 प्रतिक्रिया-देशी संस्करण 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
किंडा दुखी है कि एफबी एक नया संस्करण जारी करता है, और इस बग को ठीक करने के बजाय - जो स्पष्ट रूप से टन के लोगों को मार रहा है - वे स्वीकृत कार्य को तोड़ते हैं!
टॉम

@IgorGanapolsky सुनिश्चित करें कि आपके पास अपनी संपत्ति फ़ोल्डर में एक सूचकांक है। फ़ाइल फ़ाइल
दर्शन

@DarshanPania वह फ़ाइल क्या करती है?
इगोरगानापोलस्की

3
@IgorGanapolsky JS फ़ाइल आपके ऐप में एक प्रविष्टि बिंदु है। RN 0.49 के बाद index.jsसे index.android.jsया इसके बजाय केवल एक फ़ाइल हैindex.ios.js
दर्शन पानिया

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
ताओहिदुल इस्लाम

42

मैंने एक वास्तविक एंड्रॉइड डिवाइस के साथ एक ही समस्या का सामना किया है।

समाधान: Niltoid द्वारा इस उत्तर के आधार पर

  1. अपने स्थानीय आईपी का पता लगाएं
  2. ऐप खोलें और अपने Android डिवाइस को हिलाएं
  3. Go Dev Setting और> Debug Server ...
  4. अपना आईपी और पोर्ट पेस्ट करें; XXXX: 8088 "(जहां एक्स आपके स्थानीय आईपी हैं)

मैक उपयोगकर्ता के लिए: अपनी नेटवर्क वरीयता खोलें, यहां आपको अपना स्थानीय आईपी मिलेगा।


मेरे लिए काम करता है (y)
माहीपाल सिंह

22

यदि आप निम्न तरीके से विंडोज चला रहे हैं, या यदि आपको कोई त्रुटि मिलती है, तो "प्रविष्टि फ़ाइल index.android.jn" नहीं पा सकता है।

  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 बंडल आपके डेवलपमेंट सिस्टम पर स्थित होता है और आपके वास्तविक डिवाइस के अंदर मौजूद ऐप के बारे में पता नहीं होता है।


एंड्रॉइड स्टूडियो से सीधे चलने पर मुझे यह समस्या हो रही थी। react-native run-androidयह तय करने का उपयोग कर
yairsz

7
आपका लिंक अब काम नहीं करता है, आपको अपने स्रोत के मरने के बाद जानकारी को जीवित रखने के लिए भविष्य में महत्वपूर्ण सहायक भागों का संदर्भ देना चाहिए।
ज़ैक ग्रियर्सन

तो इसे असली डिवाइस पर कैसे चलाएं ??
इगोरगानापोलस्की

1
@IgorGanapolsky के पास एक ही मुद्दा है और इसे आधिकारिक प्रलेखन के साथ तय किया गया है, आप आसानी से अपने पर्यावरण की जांच कर सकते हैं। facebook.github.io/react-native/docs/running-on-device.html मैं एंड्रॉइड स्टूडियो से पोर लोड नहीं कर सकता (और android फ़ोल्डर) लेकिन मैं इसे प्रोजेक्ट और टर्मिनल के रूट फ़ोल्डर के साथ कर सकता था।
इवान टिटकोव

15

मैक में एक ही मुद्दा था, 2 दिन बिताने के बाद मैं आखिरकार काम करने में सक्षम था।

चूंकि Emulator cellular data was turned off, मुझे मिल रहा था unable 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? वह कहा है? वर्चुअल डिवाइस? असली डिवाइस?
ग्रीन

एमुलेटर का मतलब है वर्चुअल डिवाइस जो एंड्रॉइड स्टूडियो से आता है।
श्रीनिवास

13

अब कई महीनों के लिए मेरे पास यही मुद्दा है। मैंने शुरू में @ जेरी के समाधान का उपयोग किया था, यह एक झूठा संकल्प था क्योंकि यह पूरी तरह से समस्या को ठीक नहीं करता था। इसके बजाय, इसने हर निर्माण को एक उत्पादन निर्माण के रूप में लिया, जिसका अर्थ है कि ऐप में आपके द्वारा किए गए किसी भी मामूली बदलाव का मतलब होगा कि संपूर्ण ऐप का पुनर्निर्माण आवश्यक है।

हालांकि यह एक अस्थायी समाधान है, यह लंबे समय में बहुत ही काम करता है क्योंकि अब आप रिएक्टिव नेटिव के अद्भुत विकास उपकरण जैसे कि हॉट रीलोडिंग आदि का लाभ उठाने में सक्षम नहीं हैं।

एक उचित समाधान दिखाया गया है:

अपनी MainApplication.javaफ़ाइल में, निम्नलिखित को बदलें:

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

साथ में

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

BuildConfig.DEBUGहमेशा किसी न किसी कारण से झूठे लौटते हैं और परिणामस्वरूप संपत्ति निर्देशिका में एक बंडल फ़ाइल होती है।

इसे मैन्युअल रूप से सही पर सेट करके, आप ऐप को पैकर का उपयोग करने के लिए मजबूर कर रहे हैं। यह उत्पादन में काम नहीं करेगा इसलिए इसे गलत या डिफ़ॉल्ट मान में बदलना सुनिश्चित करें।

दौड़ना भी न भूलें

$ adb reverse tcp:8081 tcp:8081

1
यही वास्तविक समाधान है। धन्यवाद!
कीसरफैती 14

1
पवित्र, यह वास्तविक समाधान है। स्वीकृत उत्तर हॉट रीलोडिंग के लिए काम नहीं करता है और किसी भी तरह से समस्या को वैध रूप से ठीक नहीं करता है।
गणेश दत्त

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

इन सभी परिदृश्यों की लगभग कोशिश करने के बाद ... यह एकमात्र समाधान था जो मेरे लिए काम करता था। धन्यवाद!!!!
मिज़किटा

उबंटू 18.04 पर गाइड शुरू करने के बाद इस त्रुटि में चलने के बाद मेरे लिए यह काम किया। धन्यवाद!
रैस्टेटिंग

मैक ओएस कैटालिना में मेरे लिए यह काम है, धन्यवाद
हितेश

9

ओएस: विंडोज

ऊपर दिए गए दो तरीकों को आज़माने के बाद इस समस्या को हल करने का एक और तरीका है
(क्योंकि मैंने SDK को DEFAULT LOCATION में C: \ users \ "user_name" \ appdata \ local \ sdk की तरह स्थापित नहीं किया है )

यदि आपने देखा कि कमांड लाइन की घोषणा की गई है: "'अदब' को आंतरिक या बाहरी कमांड के रूप में मान्यता नहीं दी गई है ..."

तो यह है कि मैं कैसे खत्म हो गया:
उदाहरण: मैंने D: \ Android \ sdk में SDK स्थापित किया है
इसलिए मैं सिस्टम चर 2 और पंक्तियों में पथ सम्मिलित करूंगा:

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

(यदि आप पथ सिस्टम चर को संपादित करना नहीं जानते हैं, तो यहां विषय है: /android/38321/what-do-i-type-in-path-variable-for-adb सर्वर-से-शुरू-से-सेमी / 38324 )

फिर मैं फिर से cmd चलाता हूं: react-native run-android

इसने मेरे लिए काम किया।


भले ही यह वास्तव में जुड़ा नहीं है - यह बहुत ही आम समस्याओं में से एक है और यह वर्णित
थियन के

8

मेरे मामले में, मैंने MainApplication.java से नीचे की रेखा को हटा दिया है। (जो पहले मेरे द्वारा गलती से जोड़ा गया है।) : -

आयात com.facebook.react.BuildConfig;

उसके बाद क्लीन प्रोजेक्ट और हिट कमांड

प्रतिक्रिया-देशी रन-एंड्रॉइड


धन्यवाद, इसकी भी मेरी मदद करता है।
अनिल रावसाहेब घोडके

6

के लिए आईओएस:

एक टर्मिनल में:

cd ios

इसके साथ बिल्ड फ़ोल्डर निकालें: rm -r build

दोबारा दौडो: react-native run-ios

वैकल्पिक रूप से, आप खोजक, नेविगेट करने के लिए खोल सकते YOUR_PROJECT / iOS और हटाने के निर्माण फ़ोल्डर

फिर चलाएं: react-native run-ios

के लिए Android के:

एक टर्मिनल में:

cd android/app

इसके साथ बिल्ड फ़ोल्डर निकालें: rm -r build

दोबारा दौडो: react-native run-android

वैकल्पिक रूप से, आप खोजक, करने के लिए नेविगेट खोल सकते YOUR_PROJECT / एंड्रॉयड / ऐप्स और हटाने के निर्माण फ़ोल्डर

फिर चलाएं: react-native run-android


2
Android के लिए काम करता है! साफ और आसान!
llioor

android/app/binविंडोज पर फ़ोल्डर को हटाने के साथ ही काम किया। मैंने इसे चलाने के बजाय सीधे एंड्रॉइड स्टूडियो से प्रोजेक्ट बनाया था react-native run-android, और ऐसा लगता है कि यह कुछ गलत बनाया गया था जिसे मुझे मैन्युअल रूप से हटाना पड़ा।
लुकास 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

मैं भी इस समस्या का सामना कर रहा था क्योंकि जब मैं एमुलेटर पर प्रोजेक्ट्स को अपने ठीक काम पर चलाता हूं लेकिन एक वास्तविक डिवाइस पर यह त्रुटि देता है। तो मैं निम्नलिखित समाधान द्वारा इस समस्या को हल करता हूं

पहला चरण: सबसे पहले cmd खोलें और अपने SDK प्रबंधक प्लेटफ़ॉर्म-टूल फ़ोल्डर में जाएँ

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

दूसरा चरण : अब इस कमांड को चलाएं:

adb devices

इस कमांड के बाद कमांड प्रॉम्प्ट में सूचीबद्ध आपके डिवाइस की जांच करें

तीसरा चरण : अब इसे चलाएं

adb reverse tcp:8081 tcp:8081

अब आपका सेटअप हो गया है

चौथा चरण : अपने प्रोजेक्ट डायरेक्टरी में जाएं और इस कमांड को रन करें

react-native run-android

4

उबंटू

पहली बार, मैंने नया ऐप बनाया है react-native init project-name। मुझे भी यही त्रुटि मिली। इसलिए मैं अपने मामले में इसे हल करने के लिए निम्नलिखित कदम उठाता हूं।

  1. पहले sudo chown user-name-of-pc /dev/kvmमेरे मामले में चला ।
  2. अपने Android फ़ोन से डिबगिंग करते समय, चयन करें Use USB to Transfer photos (PTP)

  3. फोल्डर बनाएं assetsप्रोजेक्ट-नाम / android / app / src / main में

  4. सुनिश्चित करें कि index.jsआपकी परियोजना 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

सुनिश्चित करें कि मेट्रो बिल्डर आपके भौतिक उपकरण और सर्वर को सिंक करने के लिए चल रहा है

मेट्रो बिल्डर को चलाने के लिए सबसे पहले इस कमांड को चलाएं

npm शुरू

फिर आप मूल निवासी में निर्माण शुरू कर सकते हैं

प्रतिक्रिया-देशी रन-एंड्रॉइड

इस बार उनकी कोई त्रुटि नहीं होनी चाहिए। यदि आप चाहते हैं कि आपका कोड परिवर्तन पर लाइव रीलोड हो। अपने डिवाइस को हिलाएं और फिर सक्षम करें लाइव पुनः लोड करें टैप करें


3

सुनिश्चित करें कि आपने अपने पथ चर में / path / to / sdk / platform-tools जोड़ लिया है।

जब आप प्रतिक्रिया-देशी रन-एंड्रॉइड चलाते हैं, तो यह adb रिवर्स tcp चलाता है: <डिवाइस-पोर्ट> tcp: <स्थानीय-पोर्ट> आपके डिवाइस से आपके कंप्यूटर पर स्थानीय रूप से चल रहे सर्वर के लिए अनुरोध को आगे बढ़ाने के लिए। अगर अदब नहीं मिला तो आप कुछ इस तरह देखेंगे।

/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 }

यह सबसे उत्तोलित उत्तर तक सही होना चाहिए, जैसा कि जाँच करने वाली पहली चीज़ों में से एक होना चाहिए
eis

3

यह आपके रिएक्टिव नेटिव प्रोजेक्ट कोड आधार में अनलिंक की गई संपत्तियों के कारण हो सकता है, जैसे कि जब आप अपने प्रोजेक्ट एप्लिकेशन का नाम बदल देते हैं / बंडल आईडी करते हैं या किसी बाहरी पैकेज को लिंक किए बिना ठीक से जोड़ देते हैं, उदाहरण के लिए।

बस अपनी परियोजना रूट निर्देशिका में इसे आज़माएँ:

react-native link

react-native run-android

2

यदि react-native run-androidकमांड चलाते समय ट्रेस की दूसरी लाइन होती है

JS server not recognized, continuing with build...

इसका मतलब है कि ऐप के लिए पैकर शुरू नहीं किया जा सकता है और ऐप कुछ अतिरिक्त चरणों के बिना लोड करने में विफल हो जाएगा। ध्यान दें कि ट्रेस का अंत अभी भी सफलता की सूचना देता है:

BUILD SUCCESSFUL

समस्या शायद कुछ बंदरगाह संघर्ष है (मेरे मामले में यह डिफ़ॉल्ट आईआईएस साइट थी जिसे मैं पूरी तरह से भूल गया था)। समस्या का एक और प्रकटन http://localhost:8081/debugger-uiक्रोम में URL खोलने में विफलता होगा ।

एक बार पोर्ट संघर्ष हल हो जाने के बाद ट्रेस रिपोर्ट करेगा

Starting JS server...

फिर एक अतिरिक्त नोड विंडो खुलेगी ( node ...cli.js start) और ऐप सफलतापूर्वक लोड / पुनः लोड होगा।

उसके बाद आपको क्रोम में डीबग कंसोल खोलने में सक्षम होना चाहिए 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

मैंने अपने मैक ब्लॉकिंग पोर्ट 8081 पर McAfee के साथ इश्यू किया था, उसे 8082 में बदलना पड़ा।

पहले अपना पैकेज सर्वर चलाएं:

react-native start --port 8082

एक और टर्मिनल खोलें, हमेशा की तरह एंड्रॉइड ऐप शुरू करें:

react-native run-android

एक बार जब यह खत्म हो जाता है, अब tbp पोर्ट को फिर से लिखना चाहिए जो adb सुरंगें:

adb reverse tcp:8081 tcp:8082

अदब टीसीपी सुरंगों की सूची देखें:

adb reverse --list

अब आपको एक दिल दहला देने वाला संदेश देखना चाहिए:

(reverse) tcp:8081 tcp:8082

अपने एप्लिकेशन पर जाएं और पुनः लोड करें, किया!

PS: एप्लिकेशन में कुछ भी मत बदलो देव सेटिंग्स, यदि आपने "लोकलहोस्ट: 8082" जोड़ा है, तो इसे हटा दें, इसे खाली छोड़ दें।

संपादित करें: सभी McAfee पीड़ितों के लिए, वहाँ आसान समाधान है यदि आपके पास रूट एक्सेस है, तो बस 8081 पोर्ट पर बैठे McAfee प्रक्रिया को अस्थायी रूप से मारें और बंदरगाह परिवर्तन की कोई आवश्यकता नहीं है:

sudo launchctl remove com.mcafee.agent.macmn

2

मुझे लगता है कि आपके पास यार्न नहीं है स्थापित इसे चॉकलेट या कुछ और के साथ स्थापित करने का प्रयास करें। अपनी परियोजना (प्रतिक्रिया-मूल इनिट कमांड) बनाने से पहले इसे स्थापित किया जाना चाहिए।

संपत्ति निर्देशिका बनाने की कोई आवश्यकता नहीं है।

अगर यह काम नहीं करता तो उत्तर दें।

संपादित करें: प्रतिक्रिया-मूल के हालिया संस्करण में उन्होंने इसे ठीक किया है। यदि आप इसे केवल अनइंस्टॉल नोड से पूर्ण स्वतंत्रता चाहते हैं (पूर्ण स्थापना रद्द करने के लिए पूरी तरह से नोड को हटा दें इस लिंक को देखें) और नोड को पुनर्स्थापित करें, प्रतिक्रिया-मूल-cli फिर अपनी नई परियोजना बनाएं।


2

एमुलेटर डिवाइस में इंटरनेट चालू करना न भूलें, मैंने इस त्रुटि को फिर से शुरू किया, यह बिल्कुल सही काम करता है: वी मुझे यह त्रुटि मिलती है क्योंकि मैं नेटइन्फो का परीक्षण करने के लिए इंटरनेट बंद करता हूं: डी


2

यह एक सामान्य त्रुटि संदेश है, आप प्रतिक्रिया देशी अनुप्रयोग विकास के दौरान सामना कर सकते हैं। इसलिए इस ट्यूटोरियल में हम इस समस्या का समाधान प्रदान करने जा रहे हैं।

समस्या विवरण: संपत्ति अनुक्रमणिका से स्क्रिप्ट लोड करने में असमर्थ। Windows पर विंडो। संपत्ति पर स्क्रिप्ट लोड करने में असमर्थ।

उपरोक्त समस्या को हल करने के लिए नीचे दिए गए चरणों का पालन करें:

चरण -1: अपनी परियोजना निर्देशिका के अंदर "संपत्ति" फ़ोल्डर बनाएं अब परियोजना निर्देशिका के अंदर संपत्ति फ़ोल्डर बनाएं जो "MobileApp \ android \ app \ src \ main" है। आप मैन्युअल रूप से संपत्ति फ़ोल्डर बना सकते हैं:

<या>

आप कमांड का उपयोग करके भी फ़ोल्डर बना सकते हैं। कमांड: mkdir android / app / src / main / आस्तियों

चरण -2: अपने रिएक्टिव नेटिव एप्लिकेशन को चलाना एमुलेटर या फिजिकल डिवाइस में रिएक्शन नेटिव एप्लिकेशन को चलाने के लिए नीचे दिया गया कमांड चलाता है।

प्रोजेक्ट निर्देशिका पर स्विच करें। cd MobileApp

नीचे दिए गए कमांड को चलाएं जो आपको एंड्रॉइड एप्लिकेशन प्रोजेक्ट को बंडल करने में मदद करता है।

प्रतिक्रिया-मूलक बंडल -प्लेक्टिक ऐंड्रॉयड -देव झूठी -entry-file index.js --bundle-output android / app / src / main / आस्तियाँ / index.android.bundle --assets-dest android / app / src / मुख्य / रेस

एमुलेटर या भौतिक डिवाइस में प्रतिक्रिया के मूल अनुप्रयोग को चलाने के लिए अंतिम चरण चलाएँ। प्रतिक्रिया-देशी रन-एंड्रॉइड

<या>

साथ ही आप पिछले दो कमांड को एक में जोड़ सकते हैं, इस मामले में आपको केवल एक बार कमांड निष्पादित करना होगा।

प्रतिक्रिया-मूलक बंडल -प्लेक्टिक ऐंड्रॉयड -देव झूठी -entry-file index.js --bundle-output android / app / src / main / आस्तियाँ / index.android.bundle --assets-dest android / app / src / मुख्य / Res && प्रतिक्रिया-देशी रन-एंड्रॉइड

<या>

आप पैकेज के स्क्रिप्ट भाग में उन्हें रखकर उपरोक्त चरणों को स्वचालित कर सकते हैं। इस प्रकार:

"एंड्रॉइड-एंड्रॉइड": "प्रतिक्रिया-मूल बंडल -प्लेमिट्री एंड्रॉइड --देव गलत --entry-file index.js --bundle-output android / app / src / main / आस्तियों / index.android.bundle - कैसेट्स -dest android / app / src / main / res && प्रतिक्रिया-देशी रन-एंड्रॉइड "

यदि सब कुछ सही तरीके से सेट किया गया है, तो आपको शीघ्र ही अपने नए ऐप को अपने एंड्रॉइड एमुलेटर में चलना चाहिए।


2

इस का पालन करें, मेरे लिए काम किया।

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

अपनी प्रोजेक्ट डायरेक्टरी पर जाएं और देखें कि क्या यह फ़ोल्डर android / app / src / main / आस्तियों में मौजूद है) यदि यह मौजूद है तो दो फाइलें हटाएं। viz index.android.bundle और index.android.bundle.meta ii) यदि फ़ोल्डर की संपत्ति नहीं है 'तब मौजूद नहीं है तो वहां संपत्ति निर्देशिका बनाएँ।

अपने रूट प्रोजेक्ट डायरेक्टरी से cd android &&/gradlew क्लीन करें

अंत में, रूट डाइरेक्टरी में वापस जाएँ और जाँच करें कि क्या कोई एक प्रविष्टि फ़ाइल है, जिसे index.js i कहा जाता है) यदि कोई केवल एक फ़ाइल है जो index.js है, तो कमांड रिएक्शन के बाद चलें-देशी बंडल --प्लेट रिकॉर्डर android --dev false - -entry-file index.js --bundle-output android / app / src / main / आस्तियों / index.android.bundle --assets-dest android / app / src / main / res

ii) यदि दो फाइलें हैं, जैसे index.android.js और index.ios.js, तो इस प्रतिक्रिया-मूल बंडल को चलाएँ-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

अब प्रतिक्रिया-देशी रन-एंड्रॉइड चलाएं


आपकी टिप्पणी से मुझे बहुत मदद मिली। मुझे यकीन नहीं है कि मुझे दो बंडल फ़ाइलों को हटाने की आवश्यकता क्यों थी। लेकिन आपके निर्देश पूरी तरह से होंगे! आपको बहुत - बहुत धन्यवाद!
VK1

2

मैंने ठीक उसी समस्या का सामना किया है और इसे हल किया है। तो मददगार होने की उम्मीद है।

मान लीजिए कि आप एक रिलीज एप्लिकेशन पैकेज (.apk) को इकट्ठा कर रहे हैं

  1. जांचें कि क्या आपकी संपत्ति फ़ोल्डर मौजूद है ?: \ android \ app \ src \ main \ आस्तियों यदि नहीं, तो एक बनाएँ।

  2. "असेंबल रिलीज़" को निष्पादित करने के बाद, जांचें कि क्या उस फ़ोल्डर में कुछ भी है (\ android \ app \ src \ main \ आस्तियों) यदि नहीं, तो js बंडल फ़ाइल ढूंढें ( index.android.bundle) ) , जो एक से अधिक में होनी चाहिए निम्नलिखित पथ:

    * एक) \ एंड्रॉयड \ एप्लिकेशन \ निर्माण \ मध्यवर्ती \ merged_assets \ रिहाई \ बाहर \ index.android.bundle

    ख) \ एंड्रॉयड \ एप्लिकेशन \ निर्माण \ मध्यवर्ती \ merged_assets \ जारी \ mergeReleaseAssets \ बाहर \ index.android.bundle

    ग) \ एंड्रॉयड \ एप्लिकेशन \ निर्माण \ मध्यवर्ती \ संपत्ति \ रिहाई \ index.android.bundle

    घ) \ एंड्रॉयड \ एप्लिकेशन \ निर्माण \ उत्पन्न \ संपत्ति \ \ रिहाई प्रतिक्रिया \ index.android.bundle *

एक बेहतर तरीका फ़ाइल नाम की खोज के लिए "सब कुछ" का उपयोग करना है: index.android.bundle।

  1. फिर इस फ़ाइल को अपने संपत्ति फ़ोल्डर (\ android \ app \ src \ main \ assets \ index.android.bundle) में कॉपी करें

  2. शक्तियां या कमांड कंसोल पर वापस जाएं, निष्पादित करें:

प्रतिक्रिया-देशी रन-एंड्रॉइड --variant = रिलीज़

यह काम करना चाहिए।

सौभाग्य!


आपका बहुत बहुत धन्यवाद! तीन दिन तक संघर्ष चला! Btw प्रतिक्रिया देशी 0.59 मुद्दा तय की।
एनी

1

जब मैं प्रतिक्रिया-मूल को 0.49.5 पर अद्यतन करता हूं, तो यह समस्या प्रकट होती है और जब मैंने इस ब्रेकिंग परिवर्तन और अवक्षेपण का पालन किया

यह गायब हो गया।


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
स्क्रीनशॉट उत्तर के लिए थोड़ा अप्रासंगिक है।
टायलर

1

आप सभी लोगों के लिए जो एक क्रिएट-रिएक्शन-देशी-एप और इजेक्ट से विकसित हो रहे हैं, और इसमें यह समस्या है development, यह वही है जो मेरे लिए स्वीकृत उत्तर से थोड़ा विस्तार से काम करता है

(प्रोजेक्ट डायरेक्टरी में) mkdir android / app / src / main / आस्तियों

यहाँ वह भाग आता है जो परिवर्तन करता है जिससे आप विकास से मुक्त हो जाते हैं --dev: false:

प्रतिक्रिया-मूलक बंडल -प्लेक्टिक android --entry-file index.js --bundle-output android / app / src / main / आस्तियों / index.android.bundle --assets-dest android / app / src / main / Res

उसके बाद सभी टर्मिनलों को बंद करें, एंड्रॉइड / ऐप / से बिल्ड फोल्डर को मिटा दें, यह सुनिश्चित करने के लिए कि आप अपना ऐप बनाने के लिए साफ-सुथरा शुरू करें, एक नया टर्मिनल खोलें, और

(प्रोजेक्ट डायरेक्टरी में) npm android चलाएं

पैकर कंसोल (अन्य टर्मिनल में) को संकेत देगा और सफलतापूर्वक निर्माण करेगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.