Flutter项目中出现:Could not initialize class org.codehaus.groovy.runtime.InvokerHelper的解决方法

我的环境如下:

  • gradle 版本:

      gradle -v  //java的版本也直接输出来了。

Gradle 5.6.2
------------------------------------------------------------

Build time:   2019-09-05 16:13:54 UTC
Revision:     55a5e53d855db8fc7b0e494412fc624051a8e781

Kotlin:       1.3.41
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM:          11.0.11 (Oracle Corporation 11.0.11+9-LTS-194)
OS:           Windows 10 10.0 amd64

C:\Users\nothing>java -version
java version "11.0.11" 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)
  • Flutte版本

flutter doctor -v //里面的红×可以无视,因为我不使用android studio开发,因为太卡了。

C:\Users\Nothing>flutter doctor -v
[√] Flutter (Channel stable, 1.20.3, on Microsoft Windows [Version 10.0.19045.3086], locale zh-CN)
    • Flutter version 1.20.3 at E:\flutter_windows_1.20.3-stable\flutter
    • Framework revision 216dee60c0 (2 years, 9 months ago), 2020-09-01 12:24:47 -0700
    • Engine revision d1bc06f032
    • Dart version 2.9.2
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn


[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\Liu Shaoting\AppData\Local\Android\Sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: E:\AndroidStudio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)
    • All Android licenses accepted.

[!] Android Studio
    • Android Studio at E:\AndroidStudio
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
    • android-studio-dir = E:\AndroidStudio
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)

[√] Connected device (1 available)
    • Amazon Fire Phone (mobile) • emulator-5554 • android-x64 • Android 9 (API 28)

! Doctor found issues in 1 category.

Flutter项目构建及运行过程不再赘述。由于我需要重现别人的issue,所以就需要使用这些很老的版本。Flutter 1.22.0以上的版本直接创建项目,然后运行项目就可以了。但是在Flutter 1.22.0版本以后就需要做一下配置操作(这个不太确定,根据我的经验是这样的。)。OK, 当我在Flutter1.20.3创建的项目中使用flutter run如运行时,意外发生了,这个意外如下:

 这个错误我找了stackflow上的解决方法,大家都说是gradle版本和java的版本不匹配导致的。但是我从java8换到了java17,从gradle2.14换到gradle7.5.1。依然没有解决我的问题。gradle和java版本对照表可以查看here。然后自己摸索,试了各种方法,最后得到了答案。

解决方法如下(对我有效):

 1. 在你的项目中,找到android文件夹下的gradle.properties文件,打开这个文件。内容如下,里面的内容都是在项目构建过程中自动生成的。

org.gradle.jvmargs=-Xmx1536M

android.enableR8=true

android.useAndroidX=true

android.enableJetifier=true

 2. 在这个gradle.properties文件中增加你的java路径。格式是org.gradle.java.home=C:\\Program Files\\Java\\jdk-11.0.11。于是,gradle.properties文件的内容变为。

org.gradle.jvmargs=-Xmx1536M

android.enableR8=true

android.useAndroidX=true

android.enableJetifier=true

org.gradle.java.home=C:\\Program Files\\Java\\jdk-11.0.11

3. 保存文件。最后flutter  run就OK了。

注: 这种方法对本人有效,可以一起交流。

猜你喜欢

转载自blog.csdn.net/csdn9874123/article/details/131213760
今日推荐