首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ksoap2序列化错误

ksoap2序列化错误
EN

Stack Overflow用户
提问于 2013-04-26 16:16:57
回答 3查看 100关注 0票数 0

我试着做一个简单的应用程序来拾取一个网络服务的字符串,我已经下载了包ksopa2,金额良好和正确的数据(在互联网教程上测试),我得到下面的错误,你可以,你知道这可能是?非常感谢!

应用程序:

代码语言:javascript
复制
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

代码语言:javascript
复制
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)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-26 16:19:11

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

代码语言:javascript
复制
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

也可以试试这个,

代码语言:javascript
复制
Go to the Order and Export tab on the same popup window
Check the box against the newly added jar
票数 1
EN

Stack Overflow用户

发布于 2013-04-26 16:27:38

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

刷新项目并运行。它会运行得很好。

票数 0
EN

Stack Overflow用户

发布于 2013-04-26 17:25:33

试试这个:

步骤:

Step-01:转到项目->项目属性-> Java生成路径->库->添加外部Jars

第-02步:从目标位置选择Jar文件

Step-03:在同一窗口中,选择Libraries的下一个选项卡,即Order and Export

Step-04:订购和导出->选中您的库的复选框-> OK

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

我希望这篇文章能帮助你...:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16231735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档