使用ksoap2访问android中的asmx web服务
这是我的代码,当我尝试在emulator上运行我的项目时。以下错误为“不幸的是,应用程序停止工作”。我的日志如下。请帮我解决这个错误。 我正在使用“ksoap2-android-assembly-2.4-jar-with-dependencies.jar” 这是我的xml使用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
<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);