0
我正在关注此tutorial。这是非常直接的,我喜欢它,但它在仿真器上崩溃。我无法捕捉到错误。我不明白这个问题。这是一段代码。android ksoap2崩溃,我不能赶上它
private final String NAMESPACE = "http://www.webserviceX.NET/";
private final String URL = "http://www.webservicex.net/ConvertWeight.asmx";
private final String SOAP_ACTION = "http://www.webserviceX.NET/ConvertWeight";
private final String METHOD_NAME = "ConvertWeight";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
String weight = "3700";
String fromUnit = "Grams";
String toUnit = "Kilograms";
PropertyInfo weightProp =new PropertyInfo();
weightProp.setName("Weight");
weightProp.setValue(weight);
weightProp.setType(double.class);
request.addProperty(weightProp);
PropertyInfo fromProp =new PropertyInfo();
fromProp.setName("FromUnit");
fromProp.setValue(fromUnit);
fromProp.setType(String.class);
request.addProperty(fromProp);
PropertyInfo toProp =new PropertyInfo();
toProp.setName("ToUnit");
toProp.setValue(toUnit);
toProp.setType(String.class);
request.addProperty(toProp);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
Log.i("myApp", response.toString());
TextView tv = new TextView(this);
tv.setText(weight+" "+fromUnit+" equal "+response.toString()+ " "+toUnit);
setContentView(tv);
} catch (Exception e) {
e.printStackTrace();
}
}
您认为问题是什么?我下载了ksoap2库并包含在该项目中。我在我的真实设备上也尝试过它,它可以工作。我还启用了配置文件上的互联网访问。
任何帮助将是伟大的。或者你可以建议另一个教程?
使用的AsyncTask。您正在主UI线程上执行与网络相关的操作。 – Raghunandan 2013-05-14 18:11:12
是教程错误?你能否提出另一个小提琴? – 2013-05-14 18:13:51
对于蜂窝和以后是的,你会得到异常http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html – Raghunandan 2013-05-14 18:15:08