Repository navigation
foojay-resolver-convention 0.5.0 incompatible with Gradle 9.0.0 (IBM_SEMERU removed) #55781
Description
Activity
- addedNeeds: ReproThis issue could be improved with a clear list of steps to reproduce the issue.This issue could be improved with a clear list of steps to reproduce the issue.
on Feb 26, 2026 Warning
Missing reproducer: We could not detect a reproducible example in your issue report. Reproducers are mandatory and we can accept only one of those as a valid reproducer:
- For majority of bugs: send us a Pull Request with the RNTesterPlayground.js edited to reproduce your bug.
- If your bug is UI related: a Snack
- If your bug is build/upgrade related: a project using our Reproducer Template
You can read more about about it on our website: How to report a bug.- added a commit that references this issue
on Mar 5, 2026 Confirming this affects all RN versions through 0.86.0 nightly (verified 2026-03-11).
I checked
node_modules/@react-native/gradle-plugin/settings.gradle.ktsacross every published RN version — all shipfoojay-resolver-convention 0.5.0. No version includes>= 1.0.0.Reproduction
npx expo prebuild --platform android cd android && ./gradlew assembleDebugCrashes with:
Class org.gradle.jvm.toolchain.JvmVendorSpec does not have member field 'org.gradle.jvm.toolchain.JvmVendorSpec IBM_SEMERU'Environment
- Expo SDK 55 (expo@55.0.5)
- React Native 0.83.2
- Gradle 9.0.0 (shipped by Expo SDK 55)
- @react-native/gradle-plugin 0.83.2
- macOS 15.4, Apple Silicon
Workaround
Install JDK 17 locally and disable Gradle's auto-download to bypass the foojay resolver entirely:
# ~/.gradle/gradle.properties org.gradle.java.installations.auto-download=false org.gradle.java.installations.paths=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home
This avoids the foojay code path completely. The patch-package approach from the OP also works but is fragile since
npx expo prebuildregenerates theandroid/directory.Fix
Bump
foojay-resolver-conventionfrom0.5.0to1.0.0in@react-native/gradle-plugin/settings.gradle.kts. The fix is a one-line version change — foojay 1.0.0 drops theIBM_SEMERUreference.Reacted by Arthur RousseauSee #54160. Unfortunately, it was closed unmerged (but for the wrong reasons, IMO).
Reacted by luis931 and Saurav HathiThis issue is waiting for author's feedback since 24 days. Please provide the requested feedback or this will be closed in 7 days.
- addedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.and removedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.
on Apr 28, 2026 - added a commit that references this issue
on May 5, 2026 This issue is waiting for author's feedback since 24 days. Please provide the requested feedback or this will be closed in 7 days.
- addedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.and removedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.
on May 22, 2026 - added a commit that references this issue
on Jun 6, 2026 6 remaining items
Fixed it by manually adding "yarn add @react-native/gradle-plugin" => "@react-native/gradle-plugin": "^0.86.0"
- removedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.
on Jul 14, 2026 Hey I just stumbled on this issue and I have this details that might help to reproduce it:
Repro requires no local JDK 17 present. The crash only fires when Gradle's toolchain auto-provisioning kicks in, which only happens if no JDK matching the RN gradle-plugin's jvmToolchain(17) exists locally. Anyone with JDK 17 already installed (most maintainers) never hits the foojay 0.5.0 code path...
Minimal repro:
Fresh RN 0.83+ / Expo SDK 55 app (ships the Gradle 9.0 wrapper)
No local JDK 17 (only a newer JDK, e.g. Android Studio's JBR 21)
./gradlew help → NoSuchFieldError: JvmVendorSpec.IBM_SEMERU
I fixed it locally in my node modules (not a real fix) doing this: bumping foojay-resolver-convention to 1.0.0 in packages/gradle-plugin/settings.gradle.kts (merged to main in #56210, but not backported 0.83-stable, 0.84-stable, 0.85-stable all still pin 0.5.0).
#1349Reacted by Roman KuzkokovReacted by Lucca BoasThis issue is waiting for author's feedback since 24 days. Please provide the requested feedback or this will be closed in 7 days.
- addedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.and removedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.
on Aug 10, 2026 This issue is waiting for author's feedback since 24 days. Please provide the requested feedback or this will be closed in 7 days.
- addedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.and removedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.
on Sep 4, 2026 - added a commit that references this issue
on Sep 7, 2026 This issue is waiting for author's feedback since 24 days. Please provide the requested feedback or this will be closed in 7 days.
- addedStaleThere has been a lack of activity on this issue and it may be closed soon.There has been a lack of activity on this issue and it may be closed soon.
on Sep 28, 2026 This issue was closed because it has been stalled for 7 days with no activity.
This issue was closed because the author hasn't provided the requested feedback after 7 days.
Hi! 👋
Firstly, thanks for your work on this project! 🙂
Today I used patch-package to patch
@react-native/gradle-plugin@0.83.2for the project I'm working on.Problem
settings.gradle.ktspinsfoojay-resolver-conventionto version0.5.0, which referencesJvmVendorSpec.IBM_SEMERU— a constant removed in Gradle 9.0.0. Expo SDK 55 ships withGradle 9.0.0, so any project using Expo SDK 55 + React Native 0.83 fails to build with:
Class org.gradle.jvm.toolchain.JvmVendorSpec does not have member field
'org.gradle.jvm.toolchain.JvmVendorSpec IBM_SEMERU'
Updating to
foojay-resolver-convention1.0.0fixes the issue — this version drops theIBM_SEMERUreference entirely.Environment
@react-native/gradle-plugin: 0.83.2Here is the diff that solved my problem:
diff --git a/node_modules/@react-native/gradle-plugin/settings.gradle.kts b/node_modules/@react-native/gradle-plugin/settings.gradle.kts
index b3c46a3..14f1e9c 100644
--- a/node_modules/@react-native/gradle-plugin/settings.gradle.kts
+++ b/node_modules/@react-native/gradle-plugin/settings.gradle.kts
@@ -13,7 +13,7 @@ pluginManagement {
}
}
-plugins { id("org.gradle.toolchains.foojay-resolver-convention").version("0.5.0") }
+plugins { id("org.gradle.toolchains.foojay-resolver-convention").version("1.0.0") }
include(
":react-native-gradle-plugin",
This issue body was partially generated by patch-package.