项目中需要调用webservice接口,android SDK中并没有直接访问webservice接口的方法,于是我引入了ksoap-android的jar包,来实现访问webservice接口。刚开始一切还都比较顺利,成功从webservice接口获取到了返回的数据,直接运行在手机上一切也都正常。总之,经过一个多星期的奋斗,总算是完整的实现了需求改动。就在终于要松口气的时候,居然在最后打包签名APK时出了问题:Error:Execution failed for task ‘:app:transformJarWithDexForRelease‘ ,就是说我的jar包的文件冲突了,查看message信息,得知是okhttp中的文件冲突了。我查了自己依赖的所有jar包,在External Libraries下发现了okhttp-3.3.0和okio-1.8.0(如下图),再看一下我的libs下的ksoap-android的jar包下的文件(目录结构如下),发现它的下边也有okhttp3和okio的依赖文件,终于找到地方了,可是该怎么解决又是个问题,在网上查了不少资料,又忙了大半天,试了各种方法,最终终于解决了。
网上的方法也试了不少,最后发现一种简单又好用的方法,就是我直接删除了ksoap-android这个jar包中的okhttp3和okio这俩个文件夹,在android studio中是不能直接删除jar包中的文件的,于是在文件夹中找到我们原始的jar包,用winRAR(或者其他的解压缩工具)打开,选中okhttp3和okio文件夹,直接删除,最后再把新的jar包复制到libs文件夹下,替换掉之前的jar包,最后如图所示,在ksoap-android的jar包中已经没有了okhttp3和okio的文件夹,不过不用怕,因为我们的项目中已经引入了okhttp,最后打包签名,大功告成,测试了一下,应用依然正常运行,完美!!!!!