使用ksoap2访问android中的asmx web服务

使用ksoap2访问android中的asmx web服务,android,asmx,ksoap2,ksoap,Android,Asmx,Ksoap2,Ksoap,这是我的代码,当我尝试在emulator上运行我的项目时。以下错误为“不幸的是,应用程序停止工作”。我的日志如下。请帮我解决这个错误。 我正在使用“ksoap2-android-assembly-2.4-jar-with-dependencies.jar” 这是我的xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and

这是我的代码,当我尝试在emulator上运行我的项目时。以下错误为“不幸的是,应用程序停止工作”。我的日志如下。请帮我解决这个错误。 我正在使用“ksoap2-android-assembly-2.4-jar-with-dependencies.jar”

这是我的xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/txtName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/btnInvoke"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/txtName"
        android:layout_below="@+id/txtName"
        android:text="Invoke" />

    <TextView
        android:id="@+id/lblView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/btnInvoke"
        android:layout_below="@+id/btnInvoke"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

检查构建路径并查看jar文件是否已在主线程上通过网络检查。临时解决方案将此添加到代码中。这不是一个好的做法,但会奏效

 StrictMode.ThreadPolicy tp = StrictMode.ThreadPolicy.LAX;
        StrictMode.setThreadPolicy(tp);

顺便说一句,您正在UI线程上进行网络,这不是一个好主意。使用
AsyncTask
Handler
进行网络操作。有关更多信息,请阅读
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.abc"
    android:versionCode="1"
    android:versionName="1.0" >
   <uses-permission android:name="android.permission.INTERNET"/>
   <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.abc.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
03-26 23:56:34.949: E/dalvikvm(816): Could not find class 'org.ksoap2.serialization.SoapObject', referenced from method com.example.abc.MainActivity.onCreate
03-26 23:56:34.949: W/dalvikvm(816): VFY: unable to resolve new-instance 729 (Lorg/ksoap2/serialization/SoapObject;) in Lcom/example/abc/MainActivity;
03-26 23:56:34.970: D/dalvikvm(816): VFY: replacing opcode 0x22 at 0x0013
03-26 23:56:34.990: D/dalvikvm(816): DexOpt: unable to opt direct call 0x12d2 at 0x19 in Lcom/example/abc/MainActivity;.onCreate
03-26 23:56:35.010: D/dalvikvm(816): DexOpt: unable to opt direct call 0x12d5 at 0x27 in Lcom/example/abc/MainActivity;.onCreate
03-26 23:56:35.029: D/dalvikvm(816): DexOpt: unable to opt direct call 0x12d8 at 0x34 in Lcom/example/abc/MainActivity;.onCreate
03-26 23:56:36.630: D/AndroidRuntime(816): Shutting down VM
03-26 23:56:36.630: W/dalvikvm(816): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
03-26 23:56:36.731: E/AndroidRuntime(816): FATAL EXCEPTION: main
03-26 23:56:36.731: E/AndroidRuntime(816): java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
03-26 23:56:36.731: E/AndroidRuntime(816):  at com.example.abc.MainActivity.onCreate(MainActivity.java:34)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.app.Activity.performCreate(Activity.java:5133)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.os.Looper.loop(Looper.java:137)
03-26 23:56:36.731: E/AndroidRuntime(816):  at android.app.ActivityThread.main(ActivityThread.java:5103)
03-26 23:56:36.731: E/AndroidRuntime(816):  at java.lang.reflect.Method.invokeNative(Native Method)
03-26 23:56:36.731: E/AndroidRuntime(816):  at java.lang.reflect.Method.invoke(Method.java:525)
03-26 23:56:36.731: E/AndroidRuntime(816):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-26 23:56:36.731: E/AndroidRuntime(816):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-26 23:56:36.731: E/AndroidRuntime(816):  at dalvik.system.NativeStart.main(Native Method)
03-27 00:15:25.310: E/dalvikvm(850): Could not find class 'org.ksoap2.serialization.SoapObject', referenced from method com.example.abc.MainActivity.onCreate
03-27 00:15:25.310: W/dalvikvm(850): VFY: unable to resolve new-instance 729 (Lorg/ksoap2/serialization/SoapObject;) in Lcom/example/abc/MainActivity;
03-27 00:15:25.310: D/dalvikvm(850): VFY: replacing opcode 0x22 at 0x0013
03-27 00:15:25.350: D/dalvikvm(850): DexOpt: unable to opt direct call 0x12d2 at 0x19 in Lcom/example/abc/MainActivity;.onCreate
03-27 00:15:25.350: D/dalvikvm(850): DexOpt: unable to opt direct call 0x12d5 at 0x27 in Lcom/example/abc/MainActivity;.onCreate
03-27 00:15:25.400: D/dalvikvm(850): DexOpt: unable to opt direct call 0x12d8 at 0x34 in Lcom/example/abc/MainActivity;.onCreate
03-27 00:15:26.050: D/AndroidRuntime(850): Shutting down VM
03-27 00:15:26.050: W/dalvikvm(850): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
03-27 00:15:26.070: E/AndroidRuntime(850): FATAL EXCEPTION: main
03-27 00:15:26.070: E/AndroidRuntime(850): java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
03-27 00:15:26.070: E/AndroidRuntime(850):  at com.example.abc.MainActivity.onCreate(MainActivity.java:34)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.app.Activity.performCreate(Activity.java:5133)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.os.Looper.loop(Looper.java:137)
03-27 00:15:26.070: E/AndroidRuntime(850):  at android.app.ActivityThread.main(ActivityThread.java:5103)
03-27 00:15:26.070: E/AndroidRuntime(850):  at java.lang.reflect.Method.invokeNative(Native Method)
03-27 00:15:26.070: E/AndroidRuntime(850):  at java.lang.reflect.Method.invoke(Method.java:525)
03-27 00:15:26.070: E/AndroidRuntime(850):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-27 00:15:26.070: E/AndroidRuntime(850):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-27 00:15:26.070: E/AndroidRuntime(850):  at dalvik.system.NativeStart.main(Native Method)
 StrictMode.ThreadPolicy tp = StrictMode.ThreadPolicy.LAX;
        StrictMode.setThreadPolicy(tp);