1. 程式人生 > >AS Error:java.lang.UnsupportedClassVersionError解決方案

AS Error:java.lang.UnsupportedClassVersionError解決方案

1、場景復現

今天通過Terminal 執行命令gradle clean等 的時候突然報如下錯誤。

這裡寫圖片描述

但是通過AS Build–》Build APK 是成功的。

2、踏上路程

那麼問題就來了。遇到沒有遇到過的問題第一反應我要怎麼解決,折騰了半個小時候沒有解決,開始百度 Google,找到了不少相關資料,但是基本沒有啥明確的解決方案,有的說 執行
gradle compileDebug stacktrace

這裡寫圖片描述

這個基本沒啥幫助。繼續百度 Google,發現這個問題以前也有不僅是AS,原來Eclipse和MyEclipse也有。他們說JRE和.class問題。
到這我知道問題範圍進一步縮小了。可是還沒有解決啊。繼續……

3、路邊驛站

反思,既然通過Build–》Build APK可以是不是JDK或者Jre和Terminal的不一樣呢?前去看看考察考察。
AS 的SDK和JDK路徑如下

這裡寫圖片描述

然後複製路徑win + R 輸入複製的路徑 執行,進入bin目錄如下

這裡寫圖片描述

然後再該目錄下空白處點選後 按Shift+滑鼠右鍵,在彈出的選單中選擇“在此處開啟命令視窗”然後執行 java -version 如下圖

這裡寫圖片描述

下一步配置的JDK

這裡寫圖片描述

可以看出原來在其他環境不變的情況下是JDK版本問題。
那麼報錯中提示的
java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.minor version 52.0和JDK有什麼關係呢!如下

Java SE 9 = 53 (0x35 hex),[3]
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).

這樣看來好像有點感覺了,我根系一些jDK或者Jre就配置就可以了。有些人會納悶原來是可以Build,為啥現在不可以了呢?你仔細想想AS的版本你有沒有更新,grade 你有沒有更新。

4、太陽升起

為什麼又談上了gradle呢?因為跟確實有關係。如下圖對比
影象1原封不動繼續錯一次如下:

這裡寫圖片描述

下圖我改變了一下 classpath ‘com.android.tools.build:gradle:2.1.0’吧原來的2.2.0改為2.1.0繼續執行 gradle build 如下圖

這裡寫圖片描述

我安裝了1.8的JDK配置後如下圖並修改
classpath ‘com.android.tools.build:gradle:2.1.0’為
classpath ‘com.android.tools.build:gradle:2.2.0’

這裡寫圖片描述

到這裡我的問題基本算是解決了。其實>classpath ‘com.android.tools.build:gradle:2.1.0’也是可以gradle build 在這就不貼圖了

5、解決方案

提示:解決此問題,更新JDK(推薦)或者修改gradle