1 year ago
#360876

Andrzej Zabost
Android Studio - Target JRE version does not match project JDK version
I recently migrated my project to Gradle 7.4.1, Android Gradle Plugin 7.1.2 and therefore also JDK 11 (from JDK 8), and everything is working fine except that when I run the unit tests in debug mode in Android Studio, it shows me this popup:
that says:
Target JRE version (11.0.11) does not match project JDK version (version 1.8.0_242), will use sources from JDK: 11
To be clear, the popup is not shown in any other situation I tried so far, for example:
- building the app
- running the app in debug mode
- running the unit tests without the debug mode.
As you can see below, in Gradle settings I use JDK 11 (obviously; otherwise the project wouldn't work at all):
I also used a "Choose Runtime" plugin to make sure the correct JDK is chosen:
My environment variables are also correct:
❯ echo $JAVA_HOME
/Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents/jre/Contents/Home
❯ which java
/Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents/jre/Contents/Home/bin/java
❯ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
OpenJDK 64-Bit Server VM (build 11.0.11+0-b60-7590822, mixed mode)
❯ ./gradlew --version
------------------------------------------------------------
Gradle 7.4.1
------------------------------------------------------------
Build time: 2022-03-09 15:04:47 UTC
Revision: 36dc52588e09b4b72f2010bc07599e0ee0434e2e
Kotlin: 1.5.31
Groovy: 3.0.9
Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM: 11.0.11 (JetBrains s.r.o. 11.0.11+0-b60-7590822)
OS: Mac OS X 12.3 x86_64
I'm using Android Studio Bumblebee. Full version info:
Android Studio Bumblebee | 2021.1.1 Patch 2
Build #AI-211.7628.21.2111.8193401, built on February 17, 2022
Runtime version: 11.0.11+0-b60-7590822 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 12.3
GC: G1 Young Generation, G1 Old Generation
Memory: 4096M
Cores: 16
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: com.intellij.marketplace (211.7628.36), com.jetbrains.ChooseRuntime (1.2), com.phrase.intellij (4.0.1), com.vladsch.idea.multimarkdown (3.0.202.112), org.jetbrains.kotlin (211-1.6.10-release-923-AS7442.40)
I also reviewed some of the logs produced by Android Studio and they also seem correct:
2022-03-31 20:40:16,521 [ 0] INFO - #com.intellij.idea.Main - ------------------------------------------------------ IDE STARTED ------------------------------------------------------
2022-03-31 20:40:16,547 [ 26] INFO - .intellij.util.EnvironmentUtil - loading shell env is skipped: IDE has been launched from a terminal (SHLVL=2)
2022-03-31 20:40:16,574 [ 53] INFO - #com.intellij.idea.Main - IDE: Android Studio (build #AI-211.7628.21.2111.8193401, 17 Feb 2022 08:12)
2022-03-31 20:40:16,576 [ 55] INFO - #com.intellij.idea.Main - OS: Mac OS X (12.3, x86_64)
2022-03-31 20:40:16,582 [ 61] INFO - #com.intellij.idea.Main - JRE: 11.0.11+0-b60-7590822 (JetBrains s.r.o.)
2022-03-31 20:40:16,583 [ 62] INFO - #com.intellij.idea.Main - JVM: 11.0.11+0-b60-7590822 (OpenJDK 64-Bit Server VM)
2022-03-31 20:40:16,586 [ 65] INFO - #com.intellij.idea.Main - JVM Args: -Xms256m -Xmx1280m -XX:ReservedCodeCacheSize=512m -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -Dsun.io.useCanonCaches=false -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off -Djna.nosys=true -Djna.boot.library.path= -Didea.vendor.name=Google -XX:ErrorFile=/Users/azabost/java_error_in_studio_%p.log -XX:HeapDumpPath=/Users/azabost/java_error_in_studio.hprof -Xmx4096m -Djb.vmOptionsFile=/Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents/bin/studio.vmoptions,/Users/azabost/Library/Application Support/Google/AndroidStudio2021.1/studio.vmoptions -Didea.paths.selector=AndroidStudio2021.1 -Didea.executable=studio -Didea.platform.prefix=AndroidStudio -Didea.vendor.name=Google -Didea.home.path=/Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents
2022-03-31 20:40:16,586 [ 65] INFO - #com.intellij.idea.Main - library path: /Users/azabost/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
2022-03-31 20:40:16,586 [ 65] INFO - #com.intellij.idea.Main - boot library path: /Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents/jre/Contents/Home/lib
2022-03-31 20:40:16,603 [ 82] INFO - #com.intellij.idea.Main - locale=en_GB JNU=UTF-8 file.encoding=UTF-8
idea.config.path=/Users/azabost/Library/Application Support/Google/AndroidStudio2021.1
idea.system.path=/Users/azabost/Library/Caches/Google/AndroidStudio2021.1
idea.plugins.path=/Users/azabost/Library/Application Support/Google/AndroidStudio2021.1/plugins
idea.log.path=/Users/azabost/Library/Logs/Google/AndroidStudio2021.1
...
2022-03-31 21:32:13,214 [3116693] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from /Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents/jre/Contents/Home
2022-03-31 21:32:13,590 [3117069] INFO - ild.invoker.GradleBuildInvoker - Gradle build cancelled in 26 s 350 ms
2022-03-31 21:32:17,748 [3121227] WARN - idea.lint.common.LintIdeClient - com.toastfix.toasthandler_lint.registry.ToastHandlerIssueRegistry in /Users/azabost/.gradle/caches/transforms-3/5cacc53feafc83908b80485cdde0ce02/transformed/jetified-ToastHandler-1.2.1/jars/lint.jar does not specify a vendor; see IssueRegistry#vendor
2022-03-31 21:32:17,770 [3121249] WARN - idea.lint.common.LintIdeClient - dagger.lint.DaggerIssueRegistry in /Users/azabost/.gradle/caches/transforms-3/1d8efdd70f0fe0cb2ac32270bc2ae5c2/transformed/jetified-dagger-lint-aar-2.37/jars/lint.jar does not specify a vendor; see IssueRegistry#vendor
2022-03-31 21:32:39,862 [3143341] INFO - t.javadoc.JavaDocInfoGenerator - Wrong navElement: FUN; original = KtUltraLightMethodForSourceDeclaration:fetchAndCacheProductsWithSearchData of class class org.jetbrains.kotlin.asJava.classes.KtUltraLightMethodForSourceDeclaration
2022-03-31 21:32:39,863 [3143342] INFO - t.javadoc.JavaDocInfoGenerator - Wrong navElement: FUN; original = KtUltraLightMethodForSourceDeclaration:fetchAndCacheProductsWithSearchData of class class org.jetbrains.kotlin.asJava.classes.KtUltraLightMethodForSourceDeclaration
2022-03-31 21:32:39,863 [3143342] INFO - t.javadoc.JavaDocInfoGenerator - Wrong navElement: FUN; original = KtUltraLightMethodForSourceDeclaration:fetchAndCacheProductsWithSearchData of class class org.jetbrains.kotlin.asJava.classes.KtUltraLightMethodForSourceDeclaration
2022-03-31 21:32:39,863 [3143342] INFO - t.javadoc.JavaDocInfoGenerator - Wrong navElement: FUN; original = KtUltraLightMethodForSourceDeclaration:fetchAndCacheProductsWithSearchData of class class org.jetbrains.kotlin.asJava.classes.KtUltraLightMethodForSourceDeclaration
2022-03-31 21:33:15,802 [3179281] INFO - STDERR - invalid Unicode Property \p: /(?<=^[\s\d\p])\bV\b/
2022-03-31 21:33:56,220 [3219699] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from /Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents/jre/Contents/Home
2022-03-31 21:33:56,220 [3219699] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from /Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents/jre/Contents/Home
2022-03-31 21:33:56,228 [3219707] INFO - ild.invoker.GradleBuildInvoker - About to execute Gradle tasks: [:exampleModule:testDebugUnitTest]
2022-03-31 21:33:56,231 [3219710] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from /Users/azabost/JetBrainsToolbox/apps/AndroidStudio/ch-3/211.7628.21.2111.8193401/Android Studio.app/Contents/jre/Contents/Home
2022-03-31 21:33:56,232 [3219711] INFO - ild.invoker.GradleBuildInvoker - Build command line options: [--continue, -Pandroid.injected.invoked.from.ide=true, -Pandroid.injected.studio.version=2021.1.1 Patch 2, -Pandroid.injected.attribution.file.location=/Users/azabost/projects/app-android/.gradle, --init-script, /private/var/folders/87/kglctjzn0znd_3kx9m038jf80000gn/T/ijmapper.gradle, --tests, net.example.app.ExampleTest.Example test, --init-script, /private/var/folders/87/kglctjzn0znd_3kx9m038jf80000gn/T/ijresolvers1.gradle]
2022-03-31 21:33:56,233 [3219712] INFO - xecution.GradleExecutionHelper - Passing command-line args to Gradle Tooling API: --continue -Pandroid.injected.invoked.from.ide=true -Pandroid.injected.studio.version=2021.1.1 Patch 2 -Pandroid.injected.attribution.file.location=/Users/azabost/projects/app-android/.gradle --init-script /private/var/folders/87/kglctjzn0znd_3kx9m038jf80000gn/T/ijmapper.gradle --tests net.example.app.ExampleTest.Example test --init-script /private/var/folders/87/kglctjzn0znd_3kx9m038jf80000gn/T/ijresolvers1.gradle
Perhaps it's worth mentioning that since the project is quite big (over 200 Gradle modules) and it consists of both Android library projects (i.e. plugin com.android.library
) and pure Kotlin modules (i.e. no Android plugin, just the kotlin
plugin), I try to keep the Gradle configurations in a single place and I try to configure all the modules in the same way using my own utility functions or Gradle built-in functions such as allprojects
.
For example, to make sure all the modules have Kotlin's jvmTarget
set to the same version, I use:
allprojects {
tasks.withType(type = org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class) {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.toString()
}
}
}
and in each Android module I additionally do this:
android {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.toString()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
Unfortunately, most of the answers to similar problems I found on the internet usually mention setting the correct JDK path in IDE's Gradle settings and sometimes the configuration such as jvmTarget
etc., and none of these tips worked for me so far (unless I did something wrong).
Do you know what causes that problem and how I could fix that?
android
android-studio
kotlin
intellij-idea
gradle-kotlin-dsl
0 Answers
Your Answer