2017-06-20 19 views
5

मैं प्रतिक्रिया-मूल में नया हूं। मैंने 'प्रतिक्रिया-देशी रन-एंड्रॉइड' कमांड का उपयोग कर उबंटू पर देशी परियोजना को चलाया है। और मुझे एमुलेटर पर त्रुटि मिली "संपत्ति से लिपि लोड करने में असमर्थ 'index.android.bundle'. सुनिश्चित करें कि आपका बंडल सही ढंग से पैक किया गया है या आप एक पैकेज सर्वर चला रहे हैं।"संपत्ति 'index.android.bundle' से स्क्रिप्ट लोड करने में असमर्थ '

+0

में आपका स्वागत है अतः करने के लिए! कृपया देखें [एक अच्छा प्रश्न कैसे पूछें] (https://stackoverflow.com/questions/ask)। – rll

+0

आप https://stackoverflow.com/questions/44795384/unable-to-load-script-from-assets-index-android-bundle-make-sure-your-bundle/45409223#45409223 – honarkhah

उत्तर

1

यह प्रतिक्रिया मूल (0.46) के नवीनतम संस्करण में एक समस्या प्रतीत होता है। पिछले संस्करण का उपयोग समस्या react-native init name --version [email protected] को हल करने लगता है और react-native run-android चलाते समय त्रुटि को हटा देता है।

संपादित करें: अब यह संस्करण 0.46.1 में तय किया गया है।

13

मैं भी इस मिला है और मैं अपनी परियोजना निर्देशिका में निम्न कमांड का प्रयोग इस समाधान किया गया:

$ mkdir android/app/src/main/assets 

$ 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

$ react-native run-android 
+1

पर अपना उत्तर नहीं पा सकते हैं मेरे लिए काम कर रहा है ... क्या आप –

+0

में मदद कर सकते हैं मैंने प्रतिक्रिया मूल संस्करण 3.x के साथ प्रयास किया और index.js कार्यों के साथ index.android.js को बदल दिया। – Drake

1

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

  • यदि नहीं की तुलना में (परियोजना निर्देशिका में) mkdir एंड्रॉयड/ऐप्स/src/मुख्य/संपत्ति

  • 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

  • react-native run-android

-1

इस त्रुटि के लिए:

संपत्ति 'index.android.bundle'

1) से स्क्रिप्ट लोड करने के लिए पर "संपत्ति" फ़ोल्डर के लिए जाँच करें असमर्थ:

mkdir android\app\src\main\assets 

फ़ोल्डर उपलब्ध नहीं है, तो साथ एक फ़ोल्डर बना मैन्युअल रूप से नाम "संपत्ति"। और टर्मिनल में कर्ल कमांड निष्पादित करें।

2)। कर्ल आदेश:

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

यह संपत्ति में "index.android.bundle" फ़ाइल पैदा करेगा स्वचालित रूप से फ़ोल्डर और समस्या का समाधान।

3) तब:

react-native run-android 
6

NPM संस्करण 4.3.0 प्रतिक्रिया देशी-CLI संस्करण 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

0

मैं https://github.com/facebook/react-native/issues/15388

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

चरण चरण से एंड्रॉयड

पर बेदखल और एक CRNA चलाने के लिए टर्मिनल में:

  1. create-react-native-app myApp
  2. yarn run eject (मैं डिफ़ॉल्ट विकल्प का इस्तेमाल किया "नियमित प्रतिक्रिया मूल निवासी परियोजना")
  3. react-native run-android

(अब एप्लिकेशन संकलित किया जाना चाहिए और फोन पर स्थापित)

फ़ोन पर:

  1. भागो एप्लिकेशन (लाल त्रुटि देखने की उम्मीद स्क्रीन! - खारिज
  2. शेक फोन नीचे बाईं ओर स्थित बटन) पर क्लिक करें और देव सेटिंग्स लेने
  3. उठाओ डिवाइस के लिए डिबग सर्वर होस्ट & बंदरगाह और 192.168.xx करने के लिए सेट: 8081 (यह निश्चित रूप से अपने वास्तविक लैन आईपी बनाने)
  4. फोन पर पुनः प्रारंभ एप्लिकेशन और आप शीर्ष पर हरे बार देखना चाहिए "192.168.xx से लोड हो रहा है: 8081 ..."
  5. तुम भी मेट्रो बंडलर में कुछ "Bundling index.js" कार्रवाई (है कि जब खोला देखना चाहिए react-native run-android चल रहा है)
  6. बंडल समाप्त होने के बाद, ऐप को आपके एंड्रॉइड डिवाइस पर चलाना चाहिए!

लाइव पुनः लोड (जब स्रोत फ़ाइलों को बदलने) भी काम करता है - सिर्फ फोन और स्पर्श आप एंड्रॉयड स्टूडियो से परियोजना चला सकते हैं "लाइव पुनः लोड सक्षम करें"

हिला है, लेकिन आप पहली बार मेट्रो Bundler शुरू करने की आवश्यकता सीआरएनए परियोजना रूट में react-native start कमांड के साथ।

0

मेरे मामले में समस्या प्रतिक्रिया गतिविधि फ़ाइल में इस पंक्ति में था:

mReactInstanceManager = ReactInstanceManager.builder() 
... 
    .setUseDeveloperSupport(BuildConfig.DEBUG) 
... 

BuildConfig.DEBUG, सही पर सेट किया जाना चाहिए, जबकि मेरे मामले में यह झूठा था

0

मेरे मामले में (एक मौजूदा एंड्रॉइड कोड बेस में एक नए Activity के रूप में मूलभूत प्रतिक्रिया एम्बेड करना), समस्या यह थी कि एंड्रॉइड स्टूडियो ने गलत BuildConfig को स्वत: आयात किया था।

गलत: import com.facebook.react.BuildConfig;

अधिकार: import com.mywebdomain.myapp.BuildConfig;

इस पर लागू होता भी आप कोड के इस ब्लॉक आवास कर रहे हैं:

mReactRootView = new ReactRootView(this); 
mReactInstanceManager = ReactInstanceManager.builder() 
     .setApplication(getApplication()) 
     .setBundleAssetName("index.android.bundle") 
     .setJSMainModulePath("index") 
     .addPackage(new MainReactPackage()) 
     .setUseDeveloperSupport(BuildConfig.DEBUG) 
     .setInitialLifecycleState(LifecycleState.RESUMED) 
     .build(); 
संबंधित मुद्दे