具體錯(cuò)誤信息如下
錯(cuò)誤信息.png
4.X手機(jī)正常,5.X以上會(huì)出異常
java.io.IOException:Failed to open zip archive"/../../../swr.jar"
也就是說(shuō)DexClassLoader解壓jar包失敗.
百度,goole了一下,也沒(méi)有什么好的解決辦法,然后就開(kāi)始排查文件,發(fā)現(xiàn)釋放到Files目錄下的jar要比原始的jar尾部多幾十個(gè)字節(jié).原來(lái)4.X手機(jī)對(duì)jar包沒(méi)有強(qiáng)校驗(yàn)機(jī)制,就算是jar尾部多出幾十個(gè)字節(jié),只要jar可以正常運(yùn)行就不會(huì)出錯(cuò),但是5.0以上手機(jī)對(duì)jar有強(qiáng)校驗(yàn)機(jī)制,也就是即使jar只是尾部多出幾十個(gè)字節(jié),系統(tǒng)也不會(huì)去解壓,而是會(huì)拋出
Suppressed: java.io.IOException: Failed to open zip archive '/data/data/com.e.h.hms/files/swr.jar'
從而導(dǎo)致DexClassLoader加載失敗.
zhiy