HTC ONE里面一个非常奇怪的问题。。。调用kSOAP出错

也是在某统计网站上看到了我们的APP爆出了这么一个bug:

java.lang.NoSuchFieldError: No instance field headerOut of type [Lorg/kxml2/kdom/Element; in class Lorg/ksoap2/serialization/SoapSerializationEnvelope; or its superclasses (declaration of 'org.ksoap2.serialization.SoapSerializationEnvelope' appears in /system/framework/wifi-service.jar)
at com.example.hitpool.common.CommonFun.KsoapOpen

....

一头雾水,一看机型 HTC ONE_M8

各种搜索、查找

终于在  http://*.com/questions/28339539/app-crash-on-device-htc-m8-with-os-lollipop-for-web-service-call找到了线索与解决之道,

原来是HTC的某些 NC it looked obvious someone in HTC thought it would be a good idea to include ksoap2. Unfortunately they didn't think this through and made the same mistake as Google with Apache Commons and HttpClient ,所以.....

解决之道 暂时只有把 ksoap的jar包重新命名。。。

学到了用jarjar 重新打包命名  Jar包。好处可以参考这篇文章:

jarjar:方便的java打包工具   :http://blog.csdn.net/zzljlu/article/details/6907064

结果重新命名jar包,然后引用,是ok的,只是没在HTC上跑过,应该是ok的

上一篇:Http进行网络通信


下一篇:JS 判断数据类型的三种方法