Android中使用commons-codec-1.6.jar 進行Base64編解碼出現的問題


編碼時出現異常:

java.lang.NoSuchMethodError: No static method encodeBase64String([B)Ljava/lang/String; in class Lorg/apache/commons/codec/binary/Base64; or its super classes (declaration of 'org.apache.commons.codec.binary.Base64' appears in /system/framework/org.apache.http.legacy.boot.jar)

解碼問題:

java.lang.NoSuchMethodError: No static method decodeBase64(Ljava/lang/String;)[B in class Lorg/apache/commons/codec/binary/Base64; or its super classes (declaration of 'org.apache.commons.codec.binary.Base64' appears in /system/framework/org.apache.http.legacy.boot.jar)

通過分析日志,發現由於Android系統的Framework層也用了apache的commons-codec這個包,和我在lib中引入的包沖突了。。。

 

解決方式:從 http://archive.apache.org/dist/commons/codec/binaries/  下載於后台人員版本相同的版本的包的源碼包,直接把源碼直接拿來用。別忘了改了包名!

費了半天勁重新導包,發現還是不能用,Language.java拋出來的問題,Application啟動時候找到了我們的這個Language而沒有用系統的,就出了這個操蛋的問題。我們只要編解碼功能,所以直接把這個包刪掉就好了。

最后完美運行!開森。我的目錄結構為:

 

=========================》

上面如果訪問不了,可以訪問  commons-codec-1.6-bin.zip

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM