android如何在3.0以上的版本住访问webservice啊?
我用的ksoap2在2.2的版本下能访问,在3.0的时候编译正常,但是以运行就崩,提示找不到ksoap2的类。

解决方案 »

  1.   

    肯定是环境没弄对吧,编译的时候那个ksoap2没打进去
      

  2.   

    都按要求做了,导入第三方库,再把第三方库放到lib文件夹里面,再将lib文件夹设置为use as source folder
    错误代码如下:
    WARN/dalvikvm(610): threadid=1: thread exiting with uncaught exception (group=0x40014760)
    ERROR/AndroidRuntime(610): FATAL EXCEPTION: main
    ERROR/AndroidRuntime(610): java.lang.RuntimeException: Unable to start activity ComponentInfo{td.neusoft.WebserviceServer/td.neusoft.WebserviceServer.WebServiceServerActivity}: android.os.NetworkOnMainThreadException
    ERROR/AndroidRuntime(610):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736)
    ERROR/AndroidRuntime(610):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
    ERROR/AndroidRuntime(610):     at android.app.ActivityThread.access$1500(ActivityThread.java:123)
    ERROR/AndroidRuntime(610):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
    ERROR/AndroidRuntime(610):     at android.os.Handler.dispatchMessage(Handler.java:99)
    ERROR/AndroidRuntime(610):     at android.os.Looper.loop(Looper.java:126)
    ERROR/AndroidRuntime(610):     at android.app.ActivityThread.main(ActivityThread.java:3997)
    ERROR/AndroidRuntime(610):     at java.lang.reflect.Method.invokeNative(Native Method)
    ERROR/AndroidRuntime(610):     at java.lang.reflect.Method.invoke(Method.java:491)
    ERROR/AndroidRuntime(610):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
    ERROR/AndroidRuntime(610):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
    ERROR/AndroidRuntime(610):     at dalvik.system.NativeStart.main(Native Method)
    ERROR/AndroidRuntime(610): Caused by: android.os.NetworkOnMainThreadException
    ERROR/AndroidRuntime(610):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
    ERROR/AndroidRuntime(610):     at java.net.InetAddress.lookupHostByName(InetAddress.java:481)
    ERROR/AndroidRuntime(610):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:281)
    ERROR/AndroidRuntime(610):     at java.net.InetAddress.getAllByName(InetAddress.java:249)
    ERROR/AndroidRuntime(610):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:69)
    ERROR/AndroidRuntime(610):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
    ERROR/AndroidRuntime(610):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:304)
    ERROR/AndroidRuntime(610):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
    ERROR/AndroidRuntime(610):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:292)
    ERROR/AndroidRuntime(610):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:274)
    ERROR/AndroidRuntime(610):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:217)
    ERROR/AndroidRuntime(610):     at org.ksoap2.transport.ServiceConnectionSE.connect(ServiceConnectionSE.java:76)
    ERROR/AndroidRuntime(610):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:146)
    ERROR/AndroidRuntime(610):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)
    ERROR/AndroidRuntime(610):     at td.neusoft.WebserviceServer.WebServiceServerActivity.onCreate(WebServiceServerActivity.java:39)
    ERROR/AndroidRuntime(610):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
    ERROR/AndroidRuntime(610):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
    ERROR/AndroidRuntime(610):     ... 11 more
      

  3.   

    终于把问题解决了;
    原因是我用的ksoap2包是zip的,在编译的时候eclipse是认识的,但是在运行的时候,这些class没有导入进apk文件里面去(估计是3.0的sdk是这样)。重新下载了一个jar包就好用了,
    另外一个原因是在3.0的版本上访问网络不能在主线程内,要不就抛异常,必须自己写一个thread,把代码写进thread里面就没事了。