java.net.UnognHostException: होस्ट "<url>" को हल करने में असमर्थ: होस्टनाम और अंत में इनपुट 0 पर चरित्र के साथ जुड़ा कोई पता नहीं


84

मैंने एक ऐप बनाया है जो मेरी वेब सेवाओं से एक प्रश्न लोड करता है, और यह ठीक काम करता है। लेकिन, कभी-कभी यह दुर्घटनाग्रस्त हो जाता है और मुझे इसका कारण नहीं मिलता है कि ऐसा क्यों हो रहा है, खासकर क्योंकि मैंने इसे आवश्यक अनुमति भी दी है। यह ठीक काम करता है, लेकिन यादृच्छिक पर, यह दुर्घटनाग्रस्त हो जाता है और मुझे यह रिपोर्ट देता है।

private void sendContinentQuestions(int id) {
    // TODO Auto-generated method stub

    //Get the data (see above)
    JSONArray json = getJSONfromURL(id);
        try{
            for(int i=0; i < json.length(); i++) {
                HashMap<String, String> map = new HashMap<String, String>();
                JSONObject jObject = json.getJSONObject(i);
                longitude":"72.5660200"
                String category_id = jObject.getString("category_id");
                String question_id = jObject.getString("question_id");
                String question_name = jObject.getString("question_name");
                String latitude = jObject.getString("latitude");
                String longitude = jObject.getString("longitude");
                String answer = jObject.getString("answer");
                String ansLatLng = latitude+"|"+longitude ; 
                Log.v("## data:: ###",question_id+"--"+question_name+"-cat id-"+category_id+"--ansLatLng "+ansLatLng+" answer: "+answer);

                all_question.add(new QuestionData(game_id,category_id,question_id,question_name,ansLatLng,answer));
            }
        }catch(JSONException e)        {
            Log.e("log_tag", "Error parsing data "+e.toString());
        }
    }


}
 public JSONArray getJSONfromURL(int id){

    String response = "";
    URL url;
    try {
        url = new URL(Consts.GET_URL+"index.php/Api/getQuestion?cat_id="+id);
        HttpURLConnection http = (HttpURLConnection) url.openConnection();
        http.setRequestMethod("POST");
        InputStream is = http.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        response = br.readLine();
        Log.v("###Response :: ###",response);
        http.disconnect();
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }catch (ProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace(); 
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
    //try parse the string to a JSON object
    JSONArray jArray = null;
    try{

        jArray = new JSONArray(response);

    }catch(JSONException e){
        Log.e("log_tag", "Error parsing data "+e.toString());
    }

    return jArray;
}

11-13 15:02:52.307: W/System.err(8012): java.net.UnknownHostException: Unable to resolve host "www.xyz.com": No address associated with hostname
11-13 15:02:52.317: W/System.err(8012):     at java.net.InetAddress.lookupHostByName(InetAddress.java:424)
11-13 15:02:52.317: W/System.err(8012):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
11-13 15:02:52.317: W/System.err(8012):     at java.net.InetAddress.getAllByName(InetAddress.java:214)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:311)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:282)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity.getJSONfromURL(ContinentActivity.java:400)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity.sendContinentQuestions(ContinentActivity.java:327)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity.access$2(ContinentActivity.java:323)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.java:254)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.java:1)
11-13 15:02:52.327: W/System.err(8012):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-13 15:02:52.327: W/System.err(8012):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
11-13 15:02:52.327: W/System.err(8012):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-13 15:02:52.327: W/System.err(8012):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
11-13 15:02:52.337: W/System.err(8012):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
11-13 15:02:52.337: W/System.err(8012):     at java.lang.Thread.run(Thread.java:841)
11-13 15:02:52.337: W/System.err(8012): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
11-13 15:02:52.337: W/System.err(8012):     at libcore.io.Posix.getaddrinfo(Native Method)
11-13 15:02:52.337: W/System.err(8012):     at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:61)
11-13 15:02:52.337: W/System.err(8012):     at java.net.InetAddress.lookupHostByName(InetAddress.java:405)
11-13 15:02:52.337: W/System.err(8012):     ... 24 more
11-13 15:02:52.337: E/log_tag(8012): Error parsing data org.json.JSONException: End of input at character 0 of 
11-13 15:02:52.337: W/dalvikvm(8012): threadid=194: thread exiting with uncaught exception (group=0x417c1700)
11-13 15:02:52.337: E/AndroidRuntime(8012): FATAL EXCEPTION: AsyncTask #5
11-13 15:02:52.337: E/AndroidRuntime(8012): java.lang.RuntimeException: An error occured while executing doInBackground()
11-13 15:02:52.337: E/AndroidRuntime(8012):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at java.util.concurrent.FutureTask.run(FutureTask.java:239)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at java.lang.Thread.run(Thread.java:841)
11-13 15:02:52.337: E/AndroidRuntime(8012): Caused by: java.lang.NullPointerException
11-13 15:02:52.337: E/AndroidRuntime(8012):     at com.abc.xyz.ContinentActivity.sendContinentQuestions(ContinentActivity.java:328)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at com.abc.xyz.ContinentActivity.access$2(ContinentActivity.java:323)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.java:254)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.java:1)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)

15
क्या आप इंटरनेट से जुड़े हैं?
अपूर्व

क्या आपको अपने लॉग में मुद्रित प्रतिक्रिया मिलती है?
ग्रिअसु

हां, मैंने इंटरनेट कनेक्शन के लिए जांच की है।
रेशमा

1
जांचें कि क्या फोन इस url (छूट के लिए ब्राउज़र में) तक पहुंच सकता है

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

जवाबों:


225

मुझे इस समस्या का भी सामना करना पड़ा, वाईफाई को फिर से जोड़ने से यह हल हो सकता है।

हमारे लिए, हम जाँच कर सकते हैं कि जब हम आवेदन शुरू करते हैं तो फोन आईपी को होस्ट को हल कर सकता है या नहीं। यदि यह हल नहीं कर सकता है, तो उपयोगकर्ता को वाईफाई की जांच करने और फिर बाहर निकलने के लिए कहें।

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


धन्यवाद आप बहुत बहुत! मैं यह पता नहीं लगा सका कि मैं पते से क्यों जुड़ सकता हूं, लेकिन अपने ऐप के माध्यम से नहीं। बेवकूफ वाईफाई बग ...
DemonGyro

मुझे अपना फोन बंद करना पड़ा!
फ्रांसिस्को कॉर्लेस मोरेल्स

यह जानने का प्रयास करते हुए कि मेरा ऐप अब क्यों काम नहीं कर रहा है ... यह सब कुछ हो सकता है, यह वह था। धन्यवाद!!
thomaspsk

4
क्या यह मुद्दा अभी भी एंड्रॉइड 7 में मौजूद है? मैं इस व्यवहार को बेतरतीब ढंग से एप्लिकेशन ओपन पर एनकाउंटर कर सकता हूं। नेटवर्क कनेक्शन एप्लिकेशन के लिए उपलब्ध है, लेकिन यह वेब सेवाओं तक पहुंच को जोड़ता है। इसका क्या कारण हो सकता है? नेटवर्क में कई उपकरणों में एक ही समस्या है।
X-HuMan

क्या उपयोगकर्ता को अलर्ट या टोस्ट देने का कोई तरीका हो सकता है क्योंकि प्रोग्रामर समस्या को समझ सकते हैं, लेकिन उपयोगकर्ता को यह समझ में नहीं आता है कि वह
स्टैकओवरफ्लो में

20

यदि वाईफाई को फिर से कनेक्ट करना आपके लिए काम नहीं करता है, तो अपने डिवाइस को रिबूट करने का प्रयास करें।

यह मेरे लिए काम करता है। आशा है कि इससे सहायता मिलेगी।


16

मेरे पास सिम्युलेटर (OSX पर एंड्रॉइड स्टूडियो) में समान अपवाद था, लेकिन आईओएस सिम्युलेटर पर एक ही URL से जुड़ने पर काम किया ... ठीक ऐसा लगता है कि इस तथ्य से सभी उपजी है कि मैं सिम्युलेटर को एक व्यक्तिगत हॉटस्पॉट से कनेक्ट कर रहा हूं मेरे इंटरनेट कनेक्शन के लिए और फिर बाद में वाईफाई से जुड़ा हुआ था और सिम्युलेटर किसी कारण के लिए नए इंटरनेट कनेक्शन को पसंद नहीं करता था, ऐसा लगता है जैसे यह लगा कि पुराना हॉटस्पॉट वर्तमान कनेक्शन था, जो अब काम नहीं कर रहा था ..

सिम्युलेटर को बंद करने और स्थानांतरित करने से काम हुआ!


9

मुझे वही त्रुटि मिली और मुद्दा यह था कि मैं वीपीएन पर था और मुझे इसका एहसास नहीं था। वीपीएन से डिस्कनेक्ट करने और मेरे वाईफ़ाई नेटवर्क को फिर से कनेक्ट करने के बाद, समस्या हल हो गई थी।


5

प्रकट फ़ाइल में टैग कॉन्फ़िगर करने के लिए याद किया

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

4

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

बस सिम्युलेटर को बंद करने और मेरे लिए काम करने वाले ऐप को फिर से लॉन्च करना!


2

मेरा यह मुद्दा Android 10,

हल targetSdkVersion 29करने के लिए बदल दिया है targetSdkVersion 28। सुनिश्चित नहीं है कि वास्तविक समस्या क्या है।

मुझे लगता है कि यह अच्छा अभ्यास नहीं है, लेकिन इसने काम किया।

इससे पहले:

compileSdkVersion 29

minSdkVersion 14

targetSdkVersion 29

अभी:

compileSdkVersion 29

minSdkVersion 14

targetSdkVersion 28


1

मैं एंड्रॉइड एमुलेटर के साथ अपने एप्लिकेशन का परीक्षण कर रहा था और मैंने एंड्रॉइड एमुलेटर डिवाइस पर वाई-फाई को बंद करके और इसे हल कर दिया! इसने पूरी तरह से काम किया।


मैंने एक ही काम किया, केवल मोबाइल डेटा के साथ।
प्रिमो इवान्सी जूल 25'20

1

मैं एक ही मुद्दा रहा था, लेकिन ग्लाइड के साथ। जब मैं वाईफ़ाई से डिस्कनेक्ट और फिर से कनेक्ट करने जा रहा था (जैसे कि यह यहाँ सुझाया गया था), मैंने देखा कि मैं हवाई जहाज मोड में था


0

मुझे भी यही समस्या थी। java.net.UnognHostException: होस्ट को हल करने में असमर्थ "" ...

मैं Visual Studio 2019 और Xamarin चला रहा हूं।

मैंने अपने वाईफाई पर वापस स्विच किया लेकिन गर्म स्थान पर था।

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

इसने काम कर दिया। मुझे लगा कि मैं इसे सुलझाने के लिए कई दिनों तक लड़ाई करने जा रहा हूं। सौभाग्य से इस पोस्ट ने मुझे सही दिशा में इशारा किया।

मैं समझ नहीं पा रहा था कि यह पहले कैसे पूरी तरह से काम करता था और फिर बिना किसी कोड परिवर्तन के रुक गया।

यह संदर्भ के लिए मेरा कोड है:

using var response = await httpClient.GetAsync(sb.ToString());
string apiResponse = await response.Content.ReadAsStringAsync();

0

मुझे वही समस्या थी, लेकिन छोटे अंतर के साथ। जब मैंने इंटरनेट कनेक्शन को रनटाइम में बदल दिया था, और सभी अनुरोध भेजने से पहले इस तरह की जाँच करने के लिए मैंने NetworkConnectionCallback को जोड़ा था:

private fun isConnected(): Boolean {
    val activeNetwork = cManager.activeNetworkInfo
    return activeNetwork != null && activeNetwork.isConnected
}

कनेक्टिंग जैसी स्थिति हो सकती है (आप वाईफाई पर चालू होने पर आईईटी देख सकते हैं, आइकन ब्लिंक करना शुरू कर देता है, नेटवर्क से कनेक्ट होने के बाद, छवि स्थिर है)। इसलिए, हमारे पास दो अलग-अलग अवस्थाएँ हैं: एक दूसरे कनेक्ट करने का प्रयास करें, और जब रेट्रोफ़िट ने अनुरोध भेजने का प्रयास किया है तो इंटरनेट कनेक्शन अक्षम है और यह अज्ञातHostException फेंकता है। मैं फ़ंक्शन में एक अन्य प्रकार के अपवाद को जोड़ना भूल गया जो अनुरोध भेजने के लिए जिम्मेदार था।

try{
//for example, retrofit call
}
catch (e: Exception) {
        is UnknownHostException -> "Unknown host!"
        is ConnectException -> "No internet!"
        else -> "Unknown exception!"
    }

यह सिर्फ एक मुश्किल क्षण है जो इस समस्या से संबंधित हो सकता है।

आशा है, मैं किसी की मदद करूंगा)

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