foojay-resolver-convention 0.5.0 incompatible with Gradle 9.0.0 (IBM_SEMERU removed)

Open Beginner friendly
#55,781 12 comments 13 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
82/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
react-native

Research direction

Start in @react-native/gradle-plugin/settings.gradle.kts and inspect the foojay-resolver-convention plugin version pinned there. Verify the change against Gradle 9.0.0 with the Expo SDK 55 and React Native 0.83 environment; done means the build no longer fails while resolving JvmVendorSpec.IBM_SEMERU.

Written by the indexing model from the issue text.

Description

Needs: Author Feedback Needs: Repro

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch @react-native/gradle-plugin@0.83.2 for the project I'm working on.

Problem

settings.gradle.kts pins foojay-resolver-convention to version 0.5.0, which references
JvmVendorSpec.IBM_SEMERU — a constant removed in Gradle 9.0.0. Expo SDK 55 ships with
Gradle 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-convention 1.0.0 fixes the issue — this version drops the
IBM_SEMERU reference entirely.

Environment

  • @react-native/gradle-plugin: 0.83.2
  • Gradle: 9.0.0
  • Expo SDK: 55

Here 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.

Dominant language
C++
Stars
127k
Forks
25.3k
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from react/react-native

All issues in react/react-native

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.