背景:
????最近為了學(xué)習(xí)Compose,將Android Studio由4.2.1升級到Dolphin | 2021.3.1 Patch 1版本,后續(xù)build項(xiàng)目的時(shí)候出現(xiàn)錯誤提示
????Cause: com/android/tools/idea/gradle/run/OutputBuildAction has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

解決思路1: 升級JDK版本


解決思路2:?
????一般來說,到這里問題就解決了,可以正常Build,但是我的項(xiàng)目因?yàn)間radle配置的問題,走到最后一步未能打包,具體錯誤是
Unable to load class 'javax.xml.bind.JAXBException'.
This is an unexpected error. Please file a bug containing the idea.log file.

經(jīng)查是gradle相關(guān)錯誤,


發(fā)現(xiàn)項(xiàng)目中g(shù)radle配置不對應(yīng)
gradle 介紹
Gradle 不是Google開發(fā)的。Gradle是有專門的團(tuán)隊(duì)進(jìn)行開發(fā)維護(hù)。并且完全開源的自動化構(gòu)建工具。IDEA 默認(rèn)集成了該工具??梢苑奖愕膸臀覀儗㈨?xiàng)目代碼進(jìn)行構(gòu)建打包,是一個(gè)腳本工具。
Gradle官網(wǎng):gradle.org
如果你想了解更多與gradle的相關(guān)資料,可以通過官網(wǎng)進(jìn)行了解。
我們通常在build.gradle 下編輯輸入的代碼叫做groovy語言。如果想了解可以學(xué)習(xí)groovy語言的基本知識。
Android Studio 是采用Gradle 進(jìn)行代碼的打包編譯以及構(gòu)建項(xiàng)目的。
但是Gradle是一個(gè)開源的自動構(gòu)建工具,是面向全平臺的。所以Android 在基于Gradle進(jìn)行了二次開發(fā),整合了幾項(xiàng)專門用于構(gòu)建Android應(yīng)用的功能。
而該工具命名為:com.android.tools.build:gradle:xxxx 。
所以,到這里大家理解兩者關(guān)系了。
//這個(gè)地方是android 自己定制化Gradle的插件版本
classpath 'com.android.tools.build:gradle:3.6.4'
//gradle/wrapper/gradle-wrapper.properties 這個(gè)是系統(tǒng)獨(dú)立的Gradle的版本號。
distributionUrl=https://downloads.gradle-dn.com/distributions/gradle-5.6.4-all.zip
所以,這兩個(gè)的版本號不統(tǒng)一。
但是,AndroidGradle 是需要依賴于gradle的,所以兩個(gè)之間的對應(yīng)關(guān)系比較重要

最新信息
由于以前兩個(gè)插件的版本一直對應(yīng)不上,容易造成大家的誤解。Android Gradle的版本號 在Gradle發(fā)布7.0后,進(jìn)行了同步。也就是我們在上面看到的。7.0之后就同步上了。兩個(gè)版本號一致

所以在項(xiàng)目修改build.gradle中"classpath 'com.android.tools.build:gradle:4.0.0'"與gradle-6.1.1-all.zip對應(yīng)后,順利編譯
??
參考鏈接:
CSDN: AndroidStudio編譯報(bào)錯記錄
CSDN: Android Studio 中的Gradle版本介紹
stackoverflow:How to resolve Java Runtime (class file version 55.0)