ত্রুটি বার্তা 'java.net.SakerException: সকেট ব্যর্থ: EACCES (অনুমতি অস্বীকার)'


180

আমি ত্রুটি বার্তা পেয়েছি

java.net.SketException: সকেট ব্যর্থ: 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>

আমি কিভাবে এই সমস্যা ঠিক করতে পারবো?


আপনি কি ডিভাইস বা এমুলেটর দিয়ে পরীক্ষা করছেন?
পোনমালার

উত্তর:


356

দিয়ে চেষ্টা করুন,

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

পরিবর্তে,

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

1
+1 টি। এছাড়াও, প্রকৃত সমস্যার সাথে এর কোনও যোগসূত্র নেই, তবে: আপনি এই পরিবর্তনটি করার পরে সঠিক এপিপিটি ইনস্টল করতে ভুলবেন না ... আমি .apk এর অন্য একটি অনুলিপি আলাদা ডিরেক্টরিতে রেখে নিজেকে ফাঁকি দিয়েছি এবং সেখান থেকে ইনস্টল করার আগে এটিকে নতুন দিয়ে ওভাররাইট করতে ভুলে গেছেন।
n611x007

নভেম্বী, ২০১৩ হিসাবে আমার জন্য কাজ করেছেন e গ্রহনটি ব্যবহার করে, আপনি অনুমতি ট্যাবযুক্ত অভিনব সম্পাদক দিয়ে অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল সম্পাদনা করতে পারেন। একটি ব্যবহারের অনুমতি যুক্ত করুন এবং ড্রপডাউন মেনু থেকে এই অনুমতিটি বেছে নিন।
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
- উত্তরে যদি আপনার অতিরিক্ত তথ্য থাকে তবে কেবলমাত্র যদি আপনার ইতিমধ্যে উত্তর হিসাবে একই থাকে তবে পোস্টটি উত্তরটি সমর্থন করুন।
ব্যবহারকারী370305

1
@ user370305 আমাকে ক্ষমা করবেন, আপনার অর্থ কি তার কেবল অতিরিক্ত তথ্য পোস্ট করা উচিত? নেটিভ না হয়ে, আপনি কী বোঝাতে চেয়েছিলেন তা আমি বুঝতে পারি না তবে আমি মেটা স্টাফ সম্পর্কে জানতে চাই।
n611x007

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
যদি কেউ এখনও ভাবছেন যে এগুলি কোথায় রাখবেন: আপনি <অ্যাপ্লিকেশনের আগে এগুলি ম্যানিফেস্ট / অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল এ রাখতে পারেন
তিউ

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
laalto

0

আপনার অ্যান্ড্রয়েডস্টুডিও - বিল্ড - ক্লিন করার দরকার হতে পারে

আপনি যদি ফাইল সিস্টেম বা গিটের মাধ্যমে ম্যানিফেস্ট আপডেট করেন তবে এটি পরিবর্তনগুলি গ্রহণ করবে না।


0

আপনি যদি পরীক্ষার জন্য কোনও এমুলেটর ব্যবহার করেন তবে আপনাকে অবশ্যই ব্যবহার করতে হবে <uses-permission android:name="android.permission.INTERNET" />এবং <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />এড়ানো উচিত me এটি আমার পক্ষে কাজ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.