Flutter报错Your project's Gradle version is incompatible with the Java version that Flutter is using for Gradle.
不想多说什么,各种傻逼环境搞得人想吐,Gradle + Java 屎中屎,尤其是出现版本不兼容的情况
渲染中...
不想多说什么,各种傻逼环境搞得人想吐,Gradle + Java 屎中屎,尤其是出现版本不兼容的情况时!
报错详情:
```
┌─ Flutter Fix ───────────────────────────────────────────────────────────────────────────────────┐
│ [!] Your project's Gradle version is incompatible with the Java version that Flutter is using │
│ for Gradle. │
│ │
│ If you recently upgraded Android Studio, consult the migration guide at │
│ https://flutter.dev/to/java-gradle-incompatibility. │
│ │
│ Otherwise, to fix this issue, first, check the Java version used by Flutter by running `flutter │
│ doctor --verbose`. │
│ │
│ Then, update the Gradle version specified in │
│ E:\work-gt\gt_yuanlitui_app\android\gradle\wrapper\gradle-wrapper.properties to be compatible │
│ with that Java version. See the link below for more information on compatible Java/Gradle │
│ versions: │
│ https://docs.gradle.org/current/userguide/compatibility.html#java │
│ │
│ │
```
<!-- more -->
<!-- 文章内嵌广告位 -->
<div class="article-ads"></div>
## 解决办法
有好多个Java环境、Gradle环境、Android环境、Flutter环境相关的配置细节,不想深究这傻逼玩意,全部列出来,依次排查解决吧,最终使用统一环境基本就可以了~
> 下面的示例是在 `Java17` 情况下的正常运行配置,如果你使用 Java17,按照示例配置即可。(不保证完全正确!)
### gradle.properties
- `android/gradle.properties` Java版本
注意其中的 `java.home`
```env
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
org.gradle.java.home=C:\\Program Files\\Java\\jdk-17
```
### setting.gradle
- `android/setting.gradle` Android - Gradle 工具包版本
注意其中的 `com.android.application`,不过这个错误好解决,可以放在最后!
当其他环境配置统一后,最后保证这里版本可用就没问题了。
```json
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.1.0" apply false
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}
include ":app"
```
<!-- 文章内嵌广告位 -->
<div class="article-ads"></div>
### gradle-wrapper.properties
- `android/gradle/wrapper/gradle-wrapper.properties` Gradle版本
注意其中 `distributionUrl` ,配置与Java版本相匹配的 Gradle版本,请自行确定版本号。
```
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip
```
### Flutter配置JDK版本
使用命令 `flutter doctor --verbose` 检查当前配置的JAVA版本!
可以看到一部分配置信息如下:
```log
[√] Android toolchain - develop for Android devices (Android SDK version 35.0.0) [2.0s]
• Android SDK at E:\dependencies\android\
• Platform android-35, build-tools 35.0.0
• Java binary at: C:\Program Files\Java\jdk-17\bin\java
This JDK is specified in your Flutter configuration.
To change the current JDK, run: `flutter config --jdk-dir="path/to/jdk"`.
• Java version Java(TM) SE Runtime Environment (build 17.0.14+8-LTS-191)
• All Android licenses accepted.
```
如果想要修改Java版本,可以通过如下命令修改(请自行修改目录):
```sh
flutter config --jdk-dir="C:\Program Files\java\jdk-17"
```
<!-- 文章内嵌广告位 -->
<div class="article-ads"></div>
### 总结
大概配置点就是上面的这些,总之就是:保证 `Android` + `Gradle` + `Java` 环境能够保持通用,同时,要保证 `Flutter` 中配置的 `Java` 版本与项目中的配置一致!
END
评论
登录后查看和发表评论
前往登录