javaandroidreact-nativegradle-plugin

A Java update has caused me to be unable to compile/run my React Native project in Android


Yesterday, I got a JAVA update notice and I updated it. I didn't do any React Native development yesterday, but today I needed to do some testing on the app and I noticed that I couldn't run the app.

When I run this command: npx react-native run-android

I get an error with the following message:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'FlotasnetMobile2'.
> Could not determine the dependencies of null.
   > Could not resolve all task dependencies for configuration ':classpath'.
      > Could not find com.android.tools.build:gradle:.
        Required by:
            project :
      > Could not resolve com.facebook.react:react-native-gradle-plugin.
        Required by:
            project :
         > No matching variant of project :gradle-plugin was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.3' but:
             - Variant 'apiElements' capability com.facebook.react:react-native-gradle-plugin:unspecified declares a library, packaged as a jar, and its dependencies declared externally:
                 - Incompatible because this component declares a component for use during compile-time, compatible with Java 11 and the consumer needed a component for use during runtime, compatible with Java 8
                 - Other compatible attribute:
                     - Doesn't say anything about org.gradle.plugin.api-version (required '8.3')
             - Variant 'mainSourceElements' capability com.facebook.react:react-native-gradle-plugin:unspecified declares a component, and its dependencies declared externally:
                 - Incompatible because this component declares a component of category 'verification' and the consumer needed a library
                 - Other compatible attributes:
                     - Doesn't say anything about its target Java version (required compatibility with Java 8)
                     - Doesn't say anything about its elements (required them packaged as a jar)
                     - Doesn't say anything about org.gradle.plugin.api-version (required '8.3')
                     - Doesn't say anything about its usage (required runtime)
             - Variant 'runtimeElements' capability com.facebook.react:react-native-gradle-plugin:unspecified declares a library for use during runtime, packaged as a jar, and its dependencies declared externally:
                 - Incompatible because this component declares a component, compatible with Java 11 and the consumer needed a component, compatible with Java 8
                 - Other compatible attribute:
                     - Doesn't say anything about org.gradle.plugin.api-version (required '8.3')
             - Variant 'testResultsElementsForTest' capability com.facebook.react:react-native-gradle-plugin:unspecified:
                 - Incompatible because this component declares a component of category 'verification' and the consumer needed a library
                 - Other compatible attributes:
                     - Doesn't say anything about how its dependencies are found (required its dependencies declared externally)
                     - Doesn't say anything about its target Java version (required compatibility with Java 8)
                     - Doesn't say anything about its elements (required them packaged as a jar)
                     - Doesn't say anything about org.gradle.plugin.api-version (required '8.3')
                     - Doesn't say anything about its usage (required runtime)
      > Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:.
        Required by:
            project :

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

It seems to be related to the gradle plugin. I put the related information:

JAVA version 8 Update 421 (build 1.8.0_421-b09)

React version: "18.2.0".

React Native version: "0.73.8".

In setting.gradle file:

apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')

In build.gradle file:

dependencies {
    classpath("com.android.tools.build:gradle")
    classpath("com.facebook.react:react-native-gradle-plugin")
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
    classpath("com.google.gms:google-services:4.3.3")
}

In app/build.gradle file:

apply plugin: "com.android.application"
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"

I tried runnin npm i react-native-gradle-plugin but doesn't work.


Solution

  • The problem was in the Path. Apparently the JAVA update introduced 2 directories at the beginning of the Path. This way the JDK 17 directory was positioned as the third one.

    C:\Program Files (x86)\Common Files\Oracle\Java\java8path
    C:\Program Files (x86)\Common Files\Oracle\Java\javapath
    C:\Program Files\Microsoft\jdk-17.0.11.9-hotspot\bin
    

    Putting it in first position solved the problem.

    C:\Program Files\Microsoft\jdk-17.0.11.9-hotspot\bin
    C:\Program Files (x86)\Common Files\Oracle\Java\java8path
    C:\Program Files (x86)\Common Files\Oracle\Java\javapath