由于本人使用ksoap过程中,经过了一个星期的调试(T T)还是调不通4.0的webservice,同样的代码在2.3上可以工作的。我已把调用webservice部分放到service中运行,结果还是一样,在调用.call方法时出现exception,后面的response也就没有了。服务器那边没有接收到request,也就我这边没有发出request成功。
在官网上搜索ksoap2的changelog和各种问答也没能找出明确的答案,关于是否支持android 4.0(或API 12)
本人初学,菜鸟一枚,请各位大虾慷慨指点,或能指示一下调试的思维,小弟感激不尽!

解决方案 »

  1.   

    我也遇到了跟你一样的问题,最近也刚学android,2.2系统可以运行,放在4.0以上安卓真机上却报错,可能的原因:安卓4.0以上对于访问网络有了严格的限制(访问网络不能占用主线程),目前我还在研究中,我QQ360500292,可以共同研究
      

  2.   

    4.0以上有strict mode,阻止你在主线程调用网络请求,service还是在主线程中运行的,要不然新启一个线程处理webservice连接,要不然onCreate中加入以下代码关闭strict mode
    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  
            .detectDiskReads().detectDiskWrites().detectNetwork()  
            .penaltyLog().build());   StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  
            .detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()  
            .build());