現(xiàn)象描述:Android工程完全沒有錯(cuò)誤奈附,編譯也通過,在運(yùn)行的時(shí)候彈出框顯示Unsupported major.minor version 52.0錯(cuò)誤 ps:當(dāng)時(shí)一臉懵B埃仪,之前項(xiàng)目還能正常運(yùn)行
問題本質(zhì)原因
在高版本JDK編譯的項(xiàng)目放到低版本JDK所在的eclipse環(huán)境中編譯運(yùn)行將會(huì)出現(xiàn)這個(gè)錯(cuò)誤沙绝。
在網(wǎng)上查找解決問題的原因捌归,網(wǎng)上普遍的解決思路就是更換JDK的版本亿絮,但是樓主偶然看到一個(gè)說法是SDK的問題告喊,樓主這才恍然大悟,之前做了一個(gè)操作派昧,用Android studio的時(shí)候提示我更新SDK,樓主什么都沒有想提示我更新就更新唄黔姜,然后問題就出現(xiàn)了,樓主公司現(xiàn)在用的還是eclipse開發(fā)蒂萎,而且eclipse和Android studio用的是同一個(gè)SDK秆吵,更新之后build-tools使用的版本太高,eclipse工程配置環(huán)境不支持
解決方法
根據(jù)網(wǎng)上的說法和樓主自己的經(jīng)驗(yàn)五慈,總結(jié)出三種解決辦法
- 更換高版本的JDK
- 檢查工程中編譯使用的JDK版本
- 降低build-tools版本
解決1纳寂、2兩種問題的方法具體參考該博主文章有詳細(xì)介紹點(diǎn)此傳送門
對樓主有用的方法
在網(wǎng)上搜的關(guān)于Unsupported major.minor version 52.0問題的解決方案都是建議修改jdk版本的豺撑,但是仔細(xì)想一想其實(shí)不是這個(gè)原因黔牵,因?yàn)閖dk是用在eclipse上編譯時(shí)使用的聪轿,上面我們說了eclipse編譯工程是不拋錯(cuò)的猾浦,因此不是IDE的原因陆错;而既然是在lauching階段出現(xiàn)的問題,所以猜測是android自身進(jìn)行的“第二次”編譯出的錯(cuò)誤金赦,而這種錯(cuò)誤是和android的SDK相關(guān)的
樓主檢查SDK的時(shí)候,發(fā)現(xiàn)build-tools使用的版本是25(開發(fā)7.0使用)夹抗,就果斷的卸載了,然后再次運(yùn)行項(xiàng)目就OK了漠烧。
注:運(yùn)行的時(shí)候可能會(huì)發(fā)現(xiàn)出現(xiàn)別的問題杏愤,不用著急,這種問題可能是卸載build-tools版本引起的已脓,SDK中一些東西關(guān)聯(lián)使用了build-tools25版本的一些東西珊楼,導(dǎo)致出現(xiàn)錯(cuò)誤度液,這時(shí)候只用把SDK中下載的所有25版本的相關(guān)東西刪除即可
總結(jié)
- 使用eclipse和androd studio開發(fā)中画舌,SDK最好分開使用已慢,引用同一個(gè)SDK在更新的時(shí)候可能會(huì)遇到樓主這樣的問題曲聂;
- 不同版本JDK編譯major.minor version詳解具體參考該博主文章點(diǎn)此傳送門