Soap 网络请求 小米 2s 异常

1. 问题描述

系统环境:MIUI 7 6.3.17开发版 Android 5.0.2

错误信息

04-06 18:27:49.448: E/AndroidRuntime(27689): 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)

或者错误信息为:

04-07 11:12:34.094: W/System.err(31008): java.lang.ClassCastException: org.ksoap2.SoapFault cannot be cast to org.ksoap2.serialization.SoapObject

2. 问题分析

定制版的 Android OS 中自带了 saop jar 和 项目中使用的 saop 版本不一致,系统引入的 jar 优先级高,导致 load class 时 引入系统中 jar 的 class 出现了不兼容问题。( 如有雷同 纯属 Y_Y )

3. 解决方案

为了避免 load 系统中其他版本的 saop jar 中的 class 出现兼容问题;只需要修改 saop jar 中的 package name。

3.1 准备工具

4. 总结

踩坑之旅,一路惊喜,enjoy it,this is life !

参考: