java.net.SocketException:协议不支持地址族
在 android 中我收到以下错误:
NativeStart.main(String[]) 行:不可用[本机方法]
我的代码正在尝试使用 Web 服务:
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);
}
我的程序正在连接到互联网....但它在下面的行中抛出异常:
androidHttpTransport.call(SOAP_ACTION, envelope);
并且异常消息为 NULL。 传递的参数都是正确的。AndroidManifest.xml也没有问题。
在 Log Cat 中我收到此异常: java.net.SocketException:协议不支持地址族
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试将其添加到您的 AndroidManifest.xml 中:
您还需要捕获此异常:
Try adding this to your AndroidManifest.xml as well:
You also need to catch this Exception: