2013-04-26 71 views
0

我试图做一个简单的应用程序来拿起一个web服务的字符串,我已经下载了包ksopa2,数量和做的正确的数据(在互联网教程上测试),我得到下面的错误你可以,你知道那可能是?非常感谢你!错误ksoap2序列化

应用:

public class MainActivity extends Activity { 

private static final String SOAP_ACTION = "http://tempuri.org/devuelveString"; //Variables 
private static final String METHOD_NAME = "devuelveString"; 
private static final String NAMESPACE = "http://tempuri.org/"; 
private static final String URL = "http://localhost:52335/Service1.asmx"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button boton = (Button) findViewById(R.id.Bboton); 

    boton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      InvocarWs(); //call the method 

     } 
    }); 
} 

public void InvocarWs() { 
    System.out.println("llama al metodo"); 
    try { 

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

     final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
       SoapEnvelope.VER11); // utilizar la version que 
             // corresponda:11 o 12 
     envelope.dotNet = true; // para WS ASMX, sólo si fue construido con 
           // .Net 
     envelope.setOutputSoapObject(request); 

     HttpTransportSE transporte = new HttpTransportSE(URL); 

     transporte.call(SOAP_ACTION, envelope); 

     SoapPrimitive resultado = (SoapPrimitive) envelope.getResponse(); 

     System.out.println("" + resultado.toString()); 

    } catch (Exception e) { 
     System.out.println("catch"); 
    } 
} 

}

错误logvcat

04-26 08:03:08.731: E/AndroidRuntime(536): FATAL EXCEPTION: main 
04-26 08:03:08.731: E/AndroidRuntime(536): java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject 
04-26 08:03:08.731: E/AndroidRuntime(536): at com.example.prueba.Conexion.InvocarWs(Conexion.java:24) 
04-26 08:03:08.731: E/AndroidRuntime(536): at com.example.prueba.MainActivity$1.onClick(MainActivity.java:25) 
04-26 08:03:08.731: E/AndroidRuntime(536): at android.view.View.performClick(View.java:2485) 
04-26 08:03:08.731: E/AndroidRuntime(536): at android.view.View$PerformClick.run(View.java:9080) 
04-26 08:03:08.731: E/AndroidRuntime(536): at android.os.Handler.handleCallback(Handler.java:587) 
04-26 08:03:08.731: E/AndroidRuntime(536): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-26 08:03:08.731: E/AndroidRuntime(536): at android.os.Looper.loop(Looper.java:123) 
04-26 08:03:08.731: E/AndroidRuntime(536): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-26 08:03:08.731: E/AndroidRuntime(536): at java.lang.reflect.Method.invokeNative(Native Method) 
04-26 08:03:08.731: E/AndroidRuntime(536): at java.lang.reflect.Method.invoke(Method.java:507) 
04-26 08:03:08.731: E/AndroidRuntime(536): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-26 08:03:08.731: E/AndroidRuntime(536): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-26 08:03:08.731: E/AndroidRuntime(536): at dalvik.system.NativeStart.main(Native Method) 

回答

1

您需要的jar(S)复制到该目录libs项目中。 ADK从该文件夹中选择库并将它们转换为针对Dalvik优化的类。

Creating a folder "libs" in the project 
Copying the external jars in to the folder 
Refresh the folder 
Go to properties -> Build path -> Add Jar (not external JAR) 
Clean the project 
Restart Eclipse 

试试这个也

Go to the Order and Export tab on the same popup window 
Check the box against the newly added jar 
+0

我有,但仍然没有工作 – CristianCV 2013-04-26 08:29:10

+0

你从libs目录 – 2013-04-26 08:30:14

+0

添加在构建路径的jar文件是的,我已经做 – CristianCV 2013-04-26 08:34:25

0

ksoap2坛子只需复制到您的libs文件夹。然后从你构建的路径添加jar文件到你的项目中。

刷新您的项目并运行。它会运行良好。

+0

我这样做,但仍不工作 – CristianCV 2013-04-26 08:30:19

0

试试这个:

步骤:

步骤01:转至项目 - >项目属性 - > Java构建路径 - >库 - >添加外部JAR

步骤-02:从目的地选择JAR文件

步骤03:在同一个窗口中选择库的下一个选项卡是订单和出口

步骤-04:订单和导出 - >选中你的库的复选框 - >确定

不要创建任何libs文件夹,它会自动执行。

我希望这一个可以帮助你... :)