java.net.SocketException: Address family not supported by protocol
Asked Answered
B

1

1

in android I am getting the following error:

NativeStart.main(String[]) line: not available [native method]

my code is trying to use webservices:

import java.io.IOException;

import android.app.Activity;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

import android.app.*;
import android.content.Context;
import android.os.*;
import android.widget.TextView;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;


public class Project_InvokeServiceActivity extends Activity {
    /** Called when the activity is first created. */

     private static final String SOAP_ACTION = "http://tempuri.org/userg";

        private static final String METHOD_NAME = "userg";

        private static final String NAMESPACE = "http://tempuri.org/";
        private static final String URL = "https://amaman.NewService/Permissions.asmx";
       // TextView tv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       // tv=(TextView)findViewById(R.id.text1);
       // call();

             TextView tv = new TextView(this);




                 SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
                 request.addProperty("username", "222222");

            request.addProperty("ID", "123");



            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;

            envelope.setOutputSoapObject(request);

            setContentView(tv);

            try { HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
            tv.setText("t");

            ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();

            if (netInfo != null && netInfo.isConnectedOrConnecting()) {
                tv.setText("connected"+netInfo.getExtraInfo());
            }
            else{
            tv.setText("not conn");
            }


            try{


                androidHttpTransport.call(SOAP_ACTION, envelope);

                tv.setText("t1");
            }catch(Exception e){
                //tv.setText(e.getClass().getName());
                }



           // tv.setText("inside2");


            Object result = (Object)envelope.getResponse();


    } catch (Exception e2) {
        // TODO Auto-generated catch block
        //e.printStackTrace();
        TextView tv5 = new TextView(this);
        //tv3.setText(e1.getMessage());
       // tv.setText(result.toString());

        tv5.setText("exception"+e2.getClass()+"xxx");
        setContentView(tv);
    }

           // tv.setText(result.toString());
          //  tv.setText("inside");

          //  setContentView(tv);




    }

my program is connecting to internet....but it is throwing exception in the line below:

androidHttpTransport.call(SOAP_ACTION, envelope);

and exception messege is NULL. All the parameter passed are correct.AndroidManifest.xml is also ok.

In Log Cat i am getting this exception: java.net.SocketException: Address family not supported by protocol

Boddie answered 21/10, 2011 at 19:23 Comment(3)
What kind of exception is beeing thrown?Elexa
the e.getmessaage() is returning null.....i could'nt figure out the exception...thats the main problemBoddie
Does it work for Endpoint with HTTP instead of HTTPS?Elexa
V
5

Try adding this to your AndroidManifest.xml as well:

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

You also need to catch this Exception:

 catch(SocketException ex)
       {
         Log.e("Error : " , "Error on soapPrimitiveData() " + ex.getMessage());
           ex.printStackTrace();
       }
Verret answered 29/11, 2011 at 7:30 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.