अनुप्रयोग त्रुटि - सर्वर से कनेक्शन असफल रहा। (फ़ाइल: ///android_asset/www/index.html)


157

स्टार्टअप पर ऐप मर जाता है (सर्वर से कनेक्शन असफल रहा)

मेरे पास एक Android एप्लिकेशन है जो मैं PhoneGap BUILD का उपयोग करके लिख रहा हूं। ऐप पहले ठीक काम कर रहा था, लेकिन अब ऐसा लगता है कि मुझे अपने ऐप को परिष्कृत करने के बाद यह त्रुटि हो रही है (केवल कुछ UI परिवर्तन)

1) जब मैं ऐप शुरू करता हूं तो मैं (आमतौर पर) मिलता हूं:

अनुप्रयोग त्रुटि - सर्वर से कनेक्शन असफल रहा। (फ़ाइल: ///android_asset/www/index.html)

क्षमा करें यदि यह किसी प्रश्न का दोहराव है। मैंने यहाँ कुछ ऐसे ही प्रश्न देखे हैं, लेकिन मुझे इसका सही उत्तर या समाधान नहीं मिला। जैसा कि मेरे मामले में यह मेरे आखिरी बदलावों तक ठीक काम कर रहा था।

जवाबों:


73

जैसा कि आपने कहा, एक ही विषय पर कई डुप्लिकेट प्रश्न हैं। कोई भी आपकी स्थिति को कैसे समझाए।

अपने index.html पर कॉल करने के लिए समय-सीमा जोड़कर समस्या हल की जा सकती है

यानी आपको super.setIntegerProperty("loadUrlTimeoutValue", 70000);इस लाइन के ऊपर अपनी गतिविधि.जावा फ़ाइल (src / com / yourProj / - / youractivity.java के अंदर) जोड़ने की आवश्यकता है : super.loadUrl("file:///android_asset/www/index.html");

स्पष्टीकरण:

यह निम्नलिखित कारणों से हो सकता है

मुख्य कारण: एमुलेटर की गति के कारण समस्या होने की संभावना है इसलिए नेटवर्क समय पर फैशन में संचार को धीमा कर रहा है।

इसके कारण हो सकते हैं:

  1. आपका कोड / डेटा / छवि बहुत अधिक आकार की है (मुझे लगता है कि आपके मामले में आप कुछ छवियों का उपयोग कर रहे हैं, जैसा कि आपने कहा था कि आपने कुछ यूआई संशोधन किए हैं, हो सकता है कि छवियों का आकार अधिक हो)
  2. आपकी स्क्रिप्ट में एक अनंत या लंबा लूप हो सकता है, जिससे लोड करने में बहुत अधिक समय लगता है।
  3. आप बहुत अधिक स्क्रिप्ट (jQuery, iscroll, आदि) का उपयोग कर रहे होंगे .. अधिक संख्या में प्लगइन्स या स्क्रिप्ट)

7
मेरे मामले में क्या हुआ कि मैं अभी भी एक स्क्रिप्ट टैग था जो वेनरे के एक स्थानीय उदाहरण की ओर इशारा करता था। वेनरे नहीं चल रहा था। इसलिए - टाइमआउट।
दानिक ​​सिप

मैं इस ट्यूटोरियल के माध्यम से devgirl.org/2013/07/17/… के माध्यम से फोनगैप का उपयोग करके ऐप बना रहा हूं । क्या आप मुझे बता सकते हैं कि मुझे यह सेट कहाँ है।
अशोक मोंडल

40
-1 "एमुलेटर की गति के कारण समस्या होने की संभावना है, इसलिए नेटवर्क बहुत धीमा है" - अनुमानित, क्योंकि कोई नेटवर्क शामिल नहीं है! वह url एक स्थानीय Android संपत्ति के लिए है।
क्रिस स्ट्रैटन

मैंने इसे अपनी कॉन्फिग फ़ाइल में जोड़ा है, लेकिन यह 5x पर काम नहीं कर रहा है -
सा ई चौधरी

183

अपने config.xml फ़ाइल में यह लाइन जोड़ें:

<preference name="loadUrlTimeoutValue" value="700000" />

6
आपको इसका भी वर्णन करना चाहिए
रोहित गुप्ता

13
किसी को भी आश्चर्य हो रहा है: किसी त्रुटि को फेंकने से पहले पृष्ठ लोड करते समय मिलीसेकंड में समय की मात्रा है: cordova.apache.org/docs/en/latest/config_ref/index.html
सेड्रिक

13
<preference name="loadUrlTimeoutValue" value="120000" />700000 के साथ तुलना में बेहतर है, मेरा मतलब है कि यदि आपका ऐप दो मिनट में नहीं आ रहा है, तो कुछ गड़बड़ है (और आपको किसी अन्य समाधान का उपयोग करके इसे ठीक करना चाहिए)। Surly आप यह देखने के लिए 11 मिनट इंतजार नहीं करना चाहते हैं कि कोई ऐप आ रहा है या नहीं! (इसलिए हम पहली बार में टाइमआउट कांसेप्ट करते हैं, सही? :-)) doc के अनुसार, डिफ़ॉल्ट मान 20000 है। (20 सेकंड)
सिद्मोरद

मैंने इसे अपनी कॉन्फिग फ़ाइल में जोड़ दिया, लेकिन इसका नेक्सस 5x पर काम नहीं कर रहा है
Sa E Chowdary

यह बहुत अजीब है। मेरे पास 70000 में मेरा सेट था, और लगभग 30 सेकंड लोड करने की कोशिश के बाद ऐप मर रहे थे। मैंने इसे 120000 में बदल दिया और अब वे 3-4 सेकंड में सफलतापूर्वक लोड होते हैं। यही सब मैंने बदल दिया। अरे।
ब्रायन नोब्लुक

24

यहाँ काम कर समाधान है

एक नया पेज main.html बनाएं

उदाहरण:

<!doctype html>
<html>
  <head>
   <title>tittle</title>
   <script>
     window.location='./index.html';
   </script>
  </head>
  <body>
  </body>
</html>

निम्नलिखित को मुख्यता में बदलें। जावा

super.loadUrl("file:///android_asset/www/index.html");

सेवा

super.loadUrl("file:///android_asset/www/main.html");

अब अपना एप्लिकेशन बनाएं और यह किसी भी धीमे कनेक्शन पर काम करता है

रेफर किया गया

नोट: यह २०१३ में मिला एक वर्कअराउंड है।


3
वास्तव में आप बस अपना index.html नाम बदलते हैं और window.location = './index.html' के साथ main.html बनाते हैं। SuperAloadUrl को MainActivity.java से बदलने की जरूरत नहीं
M.Salomaa

4
एक ही प्रभाव! लेकिन आपका वास्तविक पृष्ठ main.html में बदल जाएगा। लेकिन मैं चाहता हूं कि मेरा वास्तव में पृष्ठ index.html.BTW हो, मुझे लगता है कि आपकी टिप्पणी गलत है। आप नाम बदलने की आवश्यकता index.htmlकरने के लिए main.htmlऔर एक बनाने index.htmlपेज, तो जोड़ने window.location = './main.html'। में index.htmlपेज। यह काम करना चाहिए।
रॉबिन सी सैमुअल

हाँ तुम सही हो! मुझे यह याद है कि एक: DI का मतलब है कि window.location = './main.html' के साथ index.html बनाएं। :)
M.Salomaa

आपको index.html होने के लिए अपने वास्तविक पृष्ठ की आवश्यकता क्यों है?
M.Salomaa

1
@madebydavid मैंने 4 साल पहले इसका जवाब दिया था। उस समय, देरी का संचालन करने के लिए कोई विश्वसनीय समाधान नहीं थे, जब बहुत सारी लिपियों को लोड किया जाना था। जब पृष्ठ विलंबित हो रहे थे, तो एप्लिकेशन क्रैश हो रहा था। यह काम करता है क्योंकि main.htmlप्रकाश है और लोड करने के लिए कोई स्क्रिप्ट नहीं है, जिससे ऐप को तेज़ी से प्रारंभ किया जा सकता है, और फिर स्क्रिप्ट को लोड किया जा सकता है index.html। समापन </head>एक टाइपो था, अब जोड़ा गया।
रॉबिन सी सैमुअल

10

कृपया दूरस्थ रूप से लिंक की गई jQuery फाइलें जैसे: https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

इसके बजाय, इस फ़ाइल को डाउनलोड करें और इसे अपने स्थानीय js फ़ोल्डर से लोड करें, जिससे URI:

js/jquery.min.js


6

अपने index.html में बाहरी स्क्रिप्ट निकालें

इसे बदलो:

<script src="http://code.highcharts.com/highcharts-more.js"></script>

सेवा

<script src="project_folder/highcharts-more.js"></script>

5

मेरे पास एक समान मुद्दा था और उपरोक्त सुझावों के आधार पर मैंने पहली बार "super.setIntegerProperty (" loadUrlTimeoutValue ", 70000) जोड़ा;" लेकिन इससे कोई फायदा नहीं हुआ। इसलिए मैंने प्रोजेक्ट की कोशिश की -> साफ, कि काम किया और मैं अब ऐप लॉन्च कर सकता हूं!

अविनाश ...


5

इसे इस्तेमाल करे,

1. अपने index.html को "main.html" में बदलें।

2. एक नया "index.html" बनाएं और उसमें निम्नलिखित सामग्री डालें:

<!doctype html>
<html>
  <head>
   <title>tittle</title>
   <script>
     window.location='./main.html';
   </script>
  <body>
  </body>
</html>

3. अपने एप्लिकेशन को फिर से खोलें! कोई और त्रुटि नहीं!


और अगर मुझे main.html जैसे कुछ तर्कों को जोड़ना है तो मुझे क्या करना चाहिए? USER = xxx और सत्र = xxx
नौरीडाइन अलौने

3
window.location.href = "./ main.html? USER = xxx और सत्र = xxx"
नितिन कृष्णन P

कोई कॉर्डोबा और प्लगइन्स मुख्य टैग में इंजेक्ट नहीं किए जा रहे हैं
viskin

मैंने इस कोड को जोड़ा है लेकिन लगभग 1 मिनट के लिए, एक सफेद स्क्रीन छप के बाद आ रही है। मुझे क्या करना चाहिए?
अंजना

4

मेरे प्रोजेक्ट पर भी यही था।

मैंने "super.setIntegerProperty (" loadUrlTimeoutValue ", 70000) की कोशिश की, लेकिन कोई फायदा नहीं हुआ।

मैंने सुनिश्चित किया कि सभी फाइलें ठीक से जुड़ी हुई थीं [सीएसएस, जेएस फाइलें आदि], w3c सत्यापनकर्ता का उपयोग करके HTML को मान्य किया गया था [ http://validator.w3.org/#validate_by_upload ], और परियोजना को साफ किया [प्रोजेक्ट - क्लीन)

यह अब उसी त्रुटि के बिना लोड और निष्पादित होता है।

उम्मीद है की यह मदद करेगा


4

लोडिंग टाइमआउट सीमा का विस्तार करने से उस समस्या का समाधान नहीं होगा जो त्रुटि का कारण बना, यह सिर्फ संदेश दिखाने के लिए सिस्टम से बच जाएगा लेकिन प्रदर्शन जो भी प्रभावित होगा।

वास्तविक कारण: आप दूरस्थ स्थानों पर फ़ाइलों या छवियों को लिंक कर रहे हैं, और उन संसाधनों को लोड करने में बहुत लंबा समय लग रहा है। (यह संभवतः सबसे आम त्रुटि है)

निश्चित समाधान: सभी स्क्रिप्ट, चित्र और सीएसएस को कुछ स्थानीय फ़ोल्डरों के लिए ले जाएं और उन्हें स्थानीय स्तर पर लोड करें ...

प्रदर्शन बढ़ाया जाएगा और त्रुटि को प्रभावी ढंग से हल किया जाएगा।


4

इसे एक आयनिक ऐप पर फिक्स करना, बस जोड़ना

<preference name="loadUrlTimeoutValue" value="700000" />

इस लाइन के तुरंत बाद अपने config.xml फ़ाइल में

<platform name="android">

3

आप index.htmlफ़ाइल की जाँच करें । यदि आप बाहरी संसाधनों का उपयोग करते हैं, जो तब उपलब्ध नहीं होता है जब आप एप्लिकेशन चलाते हैं तो आप यह त्रुटि प्राप्त कर सकते हैं।

मेरे मामले में मैं डीबगर स्क्रिप्ट (वेनरे) पर लिंक हटाना भूल गया।

<script src="http://192.168.0.102:8080/target/target-script-min.js#anonymous"></script>

इसलिए एप्लिकेशन ने एमुलेटर पर काम किया क्योंकि http://192.168.0.102:8080/मेरे लोकलहोस्ट पर था और एमुलेटर के लिए उपलब्ध था।

लेकिन जब मैंने मोबाइल फोन पर एप्लिकेशन सेटअप किया तो मुझे वही त्रुटि हुई, क्योंकि 192.168.0.102 मोबाइल नेटवर्क से उपलब्ध नहीं था।


1

मेरे मामले में मैं ईओण का उपयोग कर रहा हूं और मैंने बस बंद कर दिया संवाद एमुलेटर में ऐप्स पर चला गया और इसके बजाय मेरे ऐप को वहां से चला दिया। यह काम किया। मुझे इसका अंदाजा यहीं से हो गया क्योंकि यह सिर्फ टाइम आउट का मुद्दा था।


1

यदि आप विजुअल स्टूडियो का उपयोग कर रहे हैं। Config.xml बदलने के बाद कभी-कभी आपको इसकी आवश्यकता होती है

स्वच्छ बिल्ड समाधान अपने एप्लिकेशन का पुनर्निर्माण करें

यह मेरे लिए काम कर रहा है।



1

मैं उसी मुद्दे का सामना कर रहा था। मैंने देखा कि मेरे सूचकांक में मेरे पास "तैयार डिवाइस" और "डॉक्यूमेंट.आर्ड" दोनों फ़ंक्शन थे, इसलिए उनमें से एक को हटा दिया गया था: मेरे पास :)


-8

एक और कारण यह त्रुटि हो सकती है: कोई भी नहीं index.htmlहै .../YourApp/www/!

मैंने आयनिक गाइड का अनुसरण किया है , और चरणों में से एक है:

$ rm www/index.html

IOS पर यह कोई समस्या नहीं है क्योंकि बिल्ड के दौरान कंपाइलर इसके बजाय कुछ डिफ़ॉल्ट HTML लेता है। हालाँकि, Android के लिए निर्माण करते समय, NO उदाहरण index.htmlका उपयोग किया जाता है। मुझे कुछ समय के लिए पता चला ("यह आईओएस पर काम क्यों करता है, लेकिन एंड्रॉइड पर नहीं ...?"

आसान समाधान: एक index.html बनाएं, इसे अंडर सेव करें .../YourApp/www, पुनर्निर्माण करें ... et voila!

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