項目中需要調用webservice介面,android SDK中並沒有直接訪問webservice介面的方法,於是我引入了ksoap-android的jar包,來實現訪問webservice介面。剛開始一切還都比較順利,成功從webservice介面獲取到了返回的數據,直接運行在手機上一切也都正常。 ...
項目中需要調用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,最後打包簽名,大功告成,測試了一下,應用依然正常運行,完美!!!!!