Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - Can't compile on JRE - Make sure Gradle is running on a JDK, not JRE

I want to compile my app from command line, and not from Android Studio. My app works perfectly when I launch it from Android Studio to my device / emulator, however when I try to do :

gradlew build

I get :

> Task :app:kaptGenerateStubsReleaseKotlin FAILED
Caught an exception trying to connect to Kotlin Daemon
org.gradle.api.GradleException: Kotlin could not find the required JDK tools in the Java installation 'C:\Program Files (x86)\Java\jre1.8.0_191' used by Gradle. Make sure Gradle is running on a JDK, not JRE.
        at org.jetbrains.kotlin.gradle.tasks.JarSearchingUtilKt.findToolsJar(jarSearchingUtil.kt:95)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment$toolsJar$2.invoke(GradleCompilerEnvironment.kt:23)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment$toolsJar$2.invoke(GradleCompilerEnvironment.kt:17)
        at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131)
        ...

Here is my JAVA_HOME env var :

JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_191

It IS actually a JRE (and not a JDK), but, when I change my env var by my JDK as following :

JAVA_HOME=C:\Program Files\Java\jdk-11.0.1    

And I launch :

gradlew build

Then I get :

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '11.0.1'.

* 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
like image 597
Mathieu Avatar asked Oct 17 '22 08:10

Mathieu


2 Answers

You have to use JDK 8, but you are using JDK 11.

like image 150
M_S_72 Avatar answered Oct 21 '22 00:10

M_S_72


Its probably complaining about the fact you are trying to use a JDK 11 version when your gradle is only compatible up to a lesser JDK version.

The short answer would be - download a JDK 1.8.something version and try with that, the alternate (and probably better long term) answer would be to upgrade your gradle version to the latest (i.e. a JDK 11 compatible version).

EDIT: so google says that you need a minimum of Gradle 5.0 to use JDK 11 :)

like image 35
Alex Avatar answered Oct 21 '22 00:10

Alex