Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

android.os.NetworkOnMainThreadException को कैसे ठीक करें?


अपवाद जो तब फेंका जाता है जब कोई एप्लिकेशन अपने मुख्य थ्रेड पर नेटवर्किंग ऑपरेशन करने का प्रयास करता है।

यह केवल हनीकॉम्ब एसडीके या उच्चतर को लक्षित करने वाले अनुप्रयोगों के लिए फेंका गया है। एसडीके के पुराने संस्करणों को लक्षित करने वाले अनुप्रयोगों को उनके मुख्य ईवेंट लूप थ्रेड्स पर नेटवर्किंग करने की अनुमति है, लेकिन यह अत्यधिक हतोत्साहित किया जाता है।

कृपया इस अपवाद को ठीक करने के लिए नीचे दिया गया उदाहरण प्रोग्राम देखें -

यह उदाहरण दर्शाता है कि मैं android.os.NetworkOnMainThreadException को कैसे ठीक करूं।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 निम्नलिखित कोड को res/layout/activity_main.xml में जोड़ें।

  

चरण 3 - निम्न कोड को src/MainActivity.java में जोड़ें

import androidx.appcompat.app.AppCompatActivity;import android.os.AsyncTask;import android.os.Bundle;import android.widget.TextView;import java.io.BufferedReader;import java.io.IOException;import java. io.InputStreamReader; आयात java.net.URL; सार्वजनिक वर्ग MainActivity AppCompatActivity को बढ़ाता है { TextView textLoad, textMessage; अंतिम स्ट्रिंग strMessage ="https://sites.google.com/site/androidersite/text.txt"; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); टेक्स्टलोड =findViewById (R.id.textLoad); textMessage =findViewById (R.id.textMessage); textLoad.setText ("लोड हो रहा है ..."); नया MyTask ()। निष्पादित करें (); } निजी वर्ग MyTask का विस्तार AsyncTask{ String result; @Override संरक्षित Void doInBackground(Void... voids) { URL url; कोशिश करें {url =नया URL (strMessage); BufferedReader bufferedReader =नया BufferedReader (नया इनपुटस्ट्रीम रीडर (url.openStream ())); स्ट्रिंग स्ट्रिंगबफ़र; स्ट्रिंग स्ट्रिंग =""; जबकि ((स्ट्रिंगबफ़र =बफ़रेडरीडर। रीडलाइन ())! =अशक्त) {स्ट्रिंग =स्ट्रिंग। प्रारूप ("% s% s", स्ट्रिंग, स्ट्रिंगबफ़र); } bufferedReader.close (); परिणाम =स्ट्रिंग; } कैच (IOException e){ e.printStackTrace(); परिणाम =e.toString (); } वापसी शून्य; } @Override संरक्षित शून्य onPostExecute(Void aVoid) {textMessage.setText(result); textLoad.setText ("समाप्त"); super.onPostExecute(aVoid); } }} 

चरण 4 - निम्नलिखित कोड को androidManifest.xml में जोड़ें

 <उपयोग-अनुमति android:name="android.permission.INTERNET"/> <एप्लिकेशन android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android :roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name=" android.intent.action.MAIN" /> <श्रेणी android:name="android.intent.category.LAUNCHER" />   

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

android.os.NetworkOnMainThreadException को कैसे ठीक करें?

android.os.NetworkOnMainThreadException को कैसे ठीक करें?


  1. एंड्रॉइड पर मौत की काली स्क्रीन को कैसे ठीक करें

    इस तथ्य के बावजूद कि एंड्रॉइड पर उपयोगकर्ताओं की संख्या किसी भी अन्य प्लेटफॉर्म से अधिक है, यह अभी भी समस्या मुक्त नहीं है। हालाँकि Android विकास इसे बेहतर बनाने के लिए कड़ी मेहनत कर रहा है, फिर भी कई समस्याओं को स्वीकार करना बाकी है। कंप्यूटर में बीएसओडी की तरह मौत की काली स्क्रीन एक ऐसी समस्या है

  1. एंड्रॉइड स्क्रीन फ़्लिकरिंग समस्या को कैसे ठीक करें

    स्क्रीन फ्लिकरिंग की समस्या इन दिनों काफी आम है। जब आपके स्मार्टफोन की स्क्रीन टिमटिमाना या झपकना शुरू करती है, तो इसका मुख्य कारण हाल ही में इसका गिरना हो सकता है। चूंकि स्क्रीन सबसे कमजोर घटक है, भौतिक क्षति समय के साथ अपने टोल लेने की संभावना है। हालाँकि, अगर आपको लगता है कि समस्या कहीं से शुरू ह

  1. Android पर मोबाइल डेटा की समस्याओं को कैसे ठीक करें

    जब आप अपना पहला स्मार्टफोन लेते हैं, तो सेल्युलर डेटा या मोबाइल डेटा उन चीजों में से एक है जो जीवन की आवश्यकता बन जाती है। यह केवल तब तक है जब तक आप कनेक्टिविटी खो नहीं देते हैं कि आपको पता चलता है कि आपको पता नहीं है कि आप Google मानचित्र के बिना कहां जा रहे हैं, फ्लिपबोर्ड के बिना क्या पढ़ना है, औ