如果你的项目同时还用到了xml解析,相信混淆打包就应该遇到过报错问题,而且是各种问题!尤其是Android 4.2版本,就算混淆通过了,项目在手机上也运行不了。
上网看到很多人都遇到过类似的问题,查了很多资料,看了很多博客,终于把这个问题解决了。
原来是因为ksoap2里面的类和Android本身自带的类重复了,需要把ksoap2里面重复的类去掉,混淆就没问题了。
但是,混淆之后的app有的手机能用,有的手机却还是报错,因为我们混淆的时候把ksoap2的一些类也混淆掉了,所以找不到类就报错了。
这时候,我们需要在proguard-project.txt(项目混淆文件)文件后面加上下面的代码:
-libraryjars libs/ksoap2-android-assembly-3.2.0-jar-with-dependencies.jar
-dontwarn org.kobjects.**
-keep class org.kobjects.** { *;}
-dontwarn org.ksoap2.**
-keep class org.ksoap2.** { *;}
-dontwarn org.kxml2.**
-keep class org.kxml2.** { *;}
-dontwarn org.xmlpull.v1.**
-keep class org.xmlpull.v1.** { *;}
在project.properties文件最后面加上(指定项目混淆路径):
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt::proguard-project.txt
这时候,混淆打包出现的问题就已经解决了!