创建新SoapObject炸毁Android应用程序应用程序、SoapObject、Android

2023-09-07 16:01:52 作者:会哭但不会认输

我是新来的ksoap2,我试图让W3例如学校工作的例子。出于某种原因,它总是失败,在这条线。

I'm new to ksoap2 and I'm trying to get example w3 schools example working. For some reason it always fails on this line.

SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);

我不知道是什么原因造成的失败。 Android应用程序只是吹了起来。我在清单将Internet permisions。林真的不知道是怎么回事。谢谢

I dont know what is causing the fail. The android app just blows up. I have set internet permisions in Manifest. Im not really sure what is going on. Thanks

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast;
public class WebServiceTurorialActivity extends Activity implements OnClickListener{

private static final String SOAP_ACTION = "http://tempuri.org/CelsiusToFahrenheit";
private static final String METHOD_NAME = "CelsiusToFahrenheit";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://www.w3schools.com/webservices/tempconvert.asmx";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    (findViewById(R.id.button1)).setOnClickListener(this);
}


public void onClick(View v) {
    int a;
    int b;
    try
    { 
        // EditText ed1=(EditText)findViewById(R.id.editText1);
        // EditText ed2=(EditText)findViewById(R.id.editText2); 
        // a = Integer.parseInt(ed1.getText().toString());
        // b = Integer.parseInt(ed2.getText().toString()); 

         SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
         //Request.addProperty("a", a);
        // Request.addProperty("b", b);
         Request.addProperty("Celsius", "32");

         SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
         soapEnvelope.dotNet = true;
         soapEnvelope.setOutputSoapObject(Request);

         HttpTransportSE transport= new HttpTransportSE(URL);

         transport.call(SOAP_ACTION, soapEnvelope);
         SoapPrimitive resultString = (SoapPrimitive)soapEnvelope.getResponse();

         Toast.makeText(this,"200 " + resultString,Toast.LENGTH_SHORT).show();

     }catch(Exception ex) {
         Toast.makeText(this,"FALSE",Toast.LENGTH_SHORT).show();
     }
} 

}

推荐答案

我有同样的问题。这对我的作品:

I had the same problem. That works for me:

由于$ P $光伏回答说:

As the prev answer said:

在您的构建路径清除所有的库(JAR文件)。 在项目的主目录下创建一个文件夹,并把它命名为库(而不是LIB)。 现在,Eclipse的ADT插件会增加您的jar文件到构建路径

不是真的适合我。我的方法:

Not realy for me. My way:

在您的构建路径中删除了ksoap2,机器人组装-2.xx的-JAR-与-dependencies.jar 单击OK(忽略显示错误) 在项目的主目录下创建一个文件夹库 复制的JAR文件到这个目录(!) 在您的构建路径与此目录中添加JAR文件