標籤:引入 測試 替換 ima lib 返回 技術分享 分享 exe
項目中需要調用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,最後打包簽名,大功告成,測試了一下,應用依然正常運行,完美!!!!!
記一次踩坑:使用ksoap-android時造成的okhttp依賴衝突問題