19

I saw this gradle error: "Could not initialize class org.codehaus.groovy.runtime.InvokerHelper". I have tried multiple ways listed online to fix the issue but no luck. During the debugging, I found weird JVM version.

Installed Java 14 and I have set the path in JAVA_HOME in bash_profile. However, gradle shows JVM 13 version. I am not sure if this cause the error: Could not initialize class org.codehaus.groovy.runtime.InvokerHelper

My java version

java version "14.0.1" 2020-04-14
Java(TM) SE Runtime Environment (build 14.0.1+7)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

Gradle version, but not sure why JVM shows 13

Gradle 6.5
------------------------------------------------------------

Build time:   2020-06-02 20:46:21 UTC
Revision:     a27f41e4ae5e8a41ab9b19f8dd6d86d7b384dad4

Kotlin:       1.3.72
Groovy:       2.5.11
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          **13.0.2 (Oracle Corporation 13.0.2+8)**
OS:           Mac OS X 10.14.6 x86_64

Gradle error

npx react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 960 file(s) to forward-jetify. Using 4 workers...
info JS server already running.
info Launching emulator...
info Successfully launched emulator.
info Installing the app...

FAILURE: Build failed with an exception.

* What went wrong:
Could not initialize class org.codehaus.groovy.runtime.InvokerHelper

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081

FAILURE: Build failed with an exception.

* What went wrong:
Could not initialize class org.codehaus.groovy.runtime.InvokerHelper

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
reactnative
  • 505
  • 2
  • 7
  • 14

4 Answers4

69

change the version of the gradle

edit the file in YOUR_PROJECT/android/gradle/wrapper/gradle-wrapper.properties and change the version

FROM:

distributionUrl=https://services.gradle.org/distributions/gradle-6.0.1-all.zip

TO:

distributionUrl=https://services.gradle.org/distributions/gradle-6.4.1-all.zip

source: https://github.com/gradle/gradle/issues/10248#issuecomment-633656326

v3rlly
  • 824
  • 4
  • 7
5

Gradle is very specific about the Java Version. We need to check the compatibility matrix and set the java version to be needed by the gradle version.

https://docs.gradle.org/current/userguide/compatibility.html

The issues related to starting a gradle daemon are mostly because of JAVA. We don't need to upgrade or downgrade gradle version. No change in settings file needed.

Deepali Mittal
  • 996
  • 13
  • 20
3

You need to change the Gradle version of your project.

It's mentioned in the official docs: https://reactnative.dev/docs/environment-setup

"If you're using the latest version of Java Development Kit, you'll need to change the Gradle version of your project so it can recognize the JDK. You can do that by going to {project root folder}\android\gradle\wrapper\gradle-wrapper.properties and changing the distributionUrl value to upgrade the Gradle version. You can check out here the lastest releases of Gradle."

or see this image

  • Instead of posting an image of the official documentation can you paste the text in your answer formatting it accordingly? (use [blockquotes](https://stackoverflow.com/editing-help#simple-blockquotes) and [code formatting](https://stackoverflow.com/editing-help#code) where needed) – double-beep Dec 24 '21 at 08:12
  • The image is just to show where the text is written in the docs. So that, the reader doesn't waste his time. – Muhammad Ahmed Hassan Dec 25 '21 at 09:09
  • Then you can add both the text and the image. Keep in mind that images aren't searchable, harder to read on mobile, require more bandwidth and users can't copy-&-paste the text in their code (e.g. as a comment). – double-beep Dec 25 '21 at 09:21
0

The above mentioned error is very similar to what I faced when starting off with react-native development. This error is caused due to incompatible JAVA JDK and Gradle version in the project. Head to ./android/gradle/wrapper/gradle-properties ..... and change the required gradle version.