簡體   English   中英

錯誤ksoap2序列化

[英]Error ksoap2 serialization

我嘗試制作一個簡單的應用程序來提取Web服務的字符串,我已經下載了ksopa2軟件包,制作精良的數據和正確的數據(已在Internet教程上進行了測試),但我得到了下面的錯誤提示,您知道是? 非常感謝你!

應用:

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)

您需要將jar復制到項目中的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

只需將ksoap2 jar復制到您的libs文件夾即可。 然后從您的構建路徑中將jar文件添加到您的項目中。

刷新您的項目並運行。 它將運行正常。

試試這個:

腳步:

步驟01:轉到項目->項目屬性-> Java構建路徑->庫->添加外部Jar

步驟02:從目標位置選擇Jar文件

步驟03:在同一窗口中,選擇庫的下一個標簽,即“訂購並導出”

步驟04:訂購和導出->選中您的圖書館復選框->確定

不要創建任何libs文件夾,它會自動創建。

我希望這對您有幫助... :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM