在作動態加載時有一步是要將jar 轉化爲dex,用到了dx工具。以前項目在Eclipse上生成jar包轉化爲dx很正常,可是最近把項目遷移到Android Studio上生成的jar在轉化dx報了bad class file magic (cafebabe) or version (0033.0000)錯誤java
在網上搜了一圈,獲得的緣由是生成jar包的jdk和進行dx化的jdk版本不一樣,也給出瞭解決辦法,將java文件版本下降:工具
javac -source 1.6 -target 1.6 xx.Java測試
可是對我不適用,由於我這有上百個java文件須要下降版本,並且Android Studio上jdk版本是最新的1.8.所以推測從dx使用的jdk入手會有解決方法。個人dx工具是從網上下載的,之前只知道怎麼用,不知道里面都有哪些東西,zip包裏只包含了dx.bat,dex.jar。dx.bat中有一句:ui
set jarfile=dx.jar.net
並且後面的命令就是調用dx.jar,因爲電腦上只安裝了jdk1.8,經過環境變量獲取到java版本也必是這個,惟一的可能就是dx.jar太舊,在sdk目錄下的build-tools裏面找到最新版本的dx替換,測試一下,正常!ip
並且以後在Stack Overflow上也找到了一樣的解決辦法:get