發表文章

目前顯示的是 7月, 2023的文章

如何解決 Your project's Gradle version is incompatible with the Java version that Flutter is using for Gradle.

圖片
前言 為什麼會發生Gradle的問題?  說這個問題之前就要先提到什麼是Gradle,Gradle就是Java的編譯打包工具之一,Android官方指定的打包工具,也就是Android開發者必備的技能之一。 開發過Android的人一定有發生過,舊的專案本來執行都好好的,但是換了新電腦,重新下載Android Studio將舊的專案要進行開發時,有時候就會發生gradle不支援的情形? 原因在於Android Studio的版本有必需的Gradle外掛版本,請見 版本對應表 。 Gradle外掛版本又與專案內部的Gradle版本有相容的問題,請見 版本對應表 。 Java版本也要與Gradle版本相容,請見 版本對應表 本題開始 回到本題,由於Flutter在build Android app的部份,需要使用Gradle這個打包工具來進行編譯成APK。 而Java與Gradle的版本有其對應的關係存在,所以當Flutter專案裡面的Java版本與Gradle的版本對應不相容時,就會出現這個錯誤。在上面的錯誤訊息中也有提示可以前往 版本對應表 ,找出適合的版本。 快速小結一下,解決的方法就是: Java版本要與Gradle版本相容,Gradle版本要再與Android Gradle Plugin版本相容。 解決步驟 1. 修改在專案中的Gradle版本: 修改的方法是找出 gradle-wrapper.properties 檔案,將裡面的distributionUrl裡所列的版本號改成適合的版本號 假設修改為Gradle 7.5版,按下Android Studio的Run之後,就會看到Android Studio已經自動下載了一包對應版號的Gradle檔案。 接下來會發現有新的錯誤訊息: Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01 Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://