त्रुटि संदेश 'java.net.SocketException: सॉकेट विफल: EACCES (अनुमति अस्वीकृत)'


180

मुझे त्रुटि संदेश मिलता है

java.net.SocketException: सॉकेट विफल: EACCES (अनुमति अस्वीकृत)

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

public void run() {
    // TODO Auto-generated method stub
    URL myurl = null;

    try {
        myurl = new URL("http://10.0.2.2/list.JSON");
    }
    catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        URLConnection myconn = myurl.openConnection();
        InputStream in = new BufferedInputStream(myconn.getInputStream());
        InputStreamReader reader = new InputStreamReader(in);
        BufferedReader br = new BufferedReader(reader);
        String line;
        StringBuilder sb = new StringBuilder();
        while ((line=br.readLine()) != null)
        {
            sb.append(line);
            //Toast.makeText(getApplicationContext(), "I enter here", Toast.LENGTH_LONG).show();
        }
        jsoncode = sb.toString();
    }
    catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    threading = true;
    super.run();
}

लॉगकट :

06-30 11:33:21.457: W/System.err(619): java.net.SocketException: socket failed: EACCES (Permission denied)
06-30 11:33:21.467: W/System.err(619):     at libcore.io.IoBridge.socket(IoBridge.java:573)
06-30 11:33:21.467: W/System.err(619):     at java.net.PlainSocketImpl.create(PlainSocketImpl.java:201)
06-30 11:33:21.479: W/System.err(619):     at java.net.Socket.checkOpenAndCreate(Socket.java:663)
06-30 11:33:21.479: W/System.err(619):     at java.net.Socket.connect(Socket.java:807)
06-30 11:33:21.479: W/System.err(619):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:77)
06-30 11:33:21.479: W/System.err(619):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
06-30 11:33:21.479: W/System.err(619):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
06-30 11:33:21.479: W/System.err(619):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
06-30 11:33:21.479: W/System.err(619):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
06-30 11:33:21.487: W/System.err(619):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
06-30 11:33:21.487: W/System.err(619):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
06-30 11:33:21.497: W/System.err(619):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
06-30 11:33:21.497: W/System.err(619):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
06-30 11:33:21.497: W/System.err(619):     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
06-30 11:33:21.497: W/System.err(619):     at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
06-30 11:33:21.497: W/System.err(619):     at com.apk.PItestActivity$connection.run(PItestActivity.java:190)
06-30 11:33:21.507: W/System.err(619): Caused by: libcore.io.ErrnoException: socket failed: EACCES (Permission denied)
06-30 11:33:21.517: W/System.err(619):     at libcore.io.Posix.socket(Native Method)
06-30 11:33:21.517: W/System.err(619):     at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:169)
06-30 11:33:21.527: W/System.err(619):     at libcore.io.IoBridge.socket(IoBridge.java:558)
06-30 11:33:21.527: W/System.err(619):     ... 15 more

और यह मेरी मेनिफ़ेस्ट फ़ाइल है:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.apk"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="14" />
    <permission android:name="android.permission.INTERNET"></permission>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".PItestActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="addfriend"></activity>
        <activity android:name="updateDetails"></activity>
        <activity android:name="Details"></activity>
        <activity android:name="updateimage"></activity>
    </application>
</manifest>

मैं इस समस्या को कैसे ठीक करुं?


क्या आप डिवाइस या एमुलेटर से जांच कर रहे हैं?
पोनमलार ० Pon

जवाबों:


357

के साथ प्रयास करें,

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

के बजाय,

<permission  android:name="android.permission.INTERNET"></permission>

1
+1। इसके अलावा, यद्यपि इसका वास्तविक समस्या से कोई लेना-देना नहीं है, लेकिन: यह परिवर्तन करने के बाद आप सही APK स्थापित करना न भूलें ... मैंने एक अलग निर्देशिका में .apk की एक और प्रति रख कर स्वयं को धोखा दिया है। वहाँ से स्थापित करने से पहले नए के साथ इसे लिखना भूल गया।
n611x007 15

मेरे लिए nov, 2013 के रूप में काम किया। ग्रहण का उपयोग करते हुए, आप Androidmanifest.xml को एडिटिंग टैब वाले फैंसी एडिटर के साथ संपादित कर सकते हैं। एक उपयोग अनुमति जोड़ें और ड्रॉपडाउन मेनू से इस अनुमति को चुनें।
jjohn

4
महत्वपूर्ण - उपयोग-अनुमति टैग मैनिफ़ेस्ट फ़ाइल में एप्लिकेशन टैग से पहले होना चाहिए। यही कारण है कि यह मेरे लिए कम से कम तय ..
या गैल

39

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

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

और आपका activity namesइस तरह होना चाहिए capital letters:

<activity android:name=".Addfriend"/>
    <activity android:name=".UpdateDetails"/>
    <activity android:name=".Details"/>
    <activity android:name=".Updateimage"/>

4
- यदि आपके पास जवाब में अतिरिक्त जानकारी है, तो केवल पोस्ट करें यदि आपके पास पहले से ही उत्तर दिया गया है तो उस उत्तर का समर्थन करें।
user370305

1
@ user370305 मुझे माफ करना, क्या आपका मतलब है कि उसे केवल अतिरिक्त जानकारी पोस्ट करनी चाहिए? मूल निवासी नहीं होने के कारण, मैं समझ नहीं पा रहा हूं कि आपका क्या मतलब है लेकिन मैं मेटा स्टफ के बारे में जानना चाहूंगा।
n611x007 14

32

कोशिश करो।

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

2
यदि कोई व्यक्ति अभी भी सोच रहा है कि उन्हें कहां रखा जाए: आप उन्हें आवेदन / AndroidManifest.xml में डाल सकते हैं, इससे पहले <आवेदन
Tiw

19

टैग के <uses-permission>बाहर जाने की कोशिश करें <application>


7

डिवाइस पर ऐप को अनइंस्टॉल करना और फिर रीइंस्टॉल करना मेरे लिए इसे तय करता है।

अन्य सभी विकल्पों की कोशिश की, कुछ भी नहीं। अंत में यह पद मिला । यह अनुमति (नीचे) और सफाई निर्माण को जोड़ने के बाद है।

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

2

इसे एंड्रॉइड मैनिफ़ेस्ट फ़ाइल में लाइनें रखकर तय किया जा सकता है:

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

यहां छवि विवरण दर्ज करें


स्वागत हे! कृपया ध्यान दें कि नीति यह है कि प्रश्न और उत्तर अंग्रेजी में होने चाहिए
zsltg

0

उन स्रोत कोड को अपनी जावा फ़ाइल में नीचे के रूप में जोड़ें:

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());

5
यह इस सवाल का जवाब नहीं है जो प्रकट में अनुमति के लापता होने के बारे में है। और यह समस्या का एक बहुत बुरा जवाब है, जिसका यह जवाब है NetworkOnMainThreadException
लालाटो

0

आपको AndroidStudio - बिल्ड - क्लीन करने की आवश्यकता हो सकती है

यदि आपने फ़ाइल सिस्टम के माध्यम से मैनिफ़ेस्ट अपडेट किया है या उसमें परिवर्तन नहीं होंगे।


0

यदि आप परीक्षण के लिए एक एमुलेटर का उपयोग कर रहे हैं तो आपको <uses-permission android:name="android.permission.INTERNET" />केवल उपयोग करना चाहिए और अनदेखा करना चाहिए <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />। यह मेरे लिए काम है।

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