Unsupported major.minor version 52.0 報錯

其一

一般來說,Unsupported major.minor version 52.0出現時,為什麼會有這個錯誤呢?這是java版本的問題,52.0是主要版本號.次要版本號(major.minor)。每一個被編譯程式都會有其適用的版本號的資訊,可以用

javap -verbose XXXX

就可以看到適用的版號。如果不是目前JDK的適用範圍,當我們執行時就會出錯了。

我們可以在terminal中打上

java -version

看看目前的java 版本

要轉移平台或環境,確認版本有其必要。
我們可以先用 jdk 1.8 編釋一個小程式,然後再把jdk換成1.7執行看看,就會出現
Unsupported major.minor version 52.0

所以我們可以在https://en.wikipedia.org/wiki/Java_class_file#General_layout
找到各版本支援的版本號,這樣就不會弄錯了。簡單記錄一下。

java SE 9 = 53 (0x35 hex),
Java SE 8 = 52 (0x34 hex),
Java SE 7 = 51 (0x33 hex),
Java SE 6.0 = 50 (0x32 hex),
Java SE 5.0 = 49 (0x31 hex),
JDK 1.4 = 48 (0x30 hex),
JDK 1.3 = 47 (0x2F hex),
JDK 1.2 = 46 (0x2E hex),
JDK 1.1 = 45 (0x2D hex).



其二

在android studio上可能就是compileSdkVersion跟buildToolVersion版本有所不同。如下,將兩者改為一樣的版本 24,問題即可解決。


android{
compileSdkVersion    24
buildToolVersion         24.0.1

留言

這個網誌中的熱門文章

python 找圖自動點擊

Python pyserial 抓取系統內的 COM PORT

VBA EXCEL 工作表變化 馬上執行 的作法 Worksheet_Change