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
一般來說,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
留言
張貼留言