Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React Native : Could not find com.android.tools.build:gradle:2.2.3

I'm making an android app using react native and this is the error I'm getting :


    FAILURE: Build failed with an exception.

    * What went wrong:
    A problem occurred configuring project ':react-native-fetch-blob'.
    > Could not resolve all artifacts for configuration ':react-native-fetch-blob:classpath'.
       > Could not find com.android.tools.build:gradle:2.2.3.
         Searched in the following locations:
             https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.3/gradle-2.2.3.pom
             https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.3/gradle-2.2.3.jar
         Required by:
             project :react-native-fetch-blob

I'm getting the following warnings also :


    > Configure project :app 
    WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
    It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
    WARNING: The specified Android SDK Build Tools version (26.0.2) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.2.1.
    Android SDK Build Tools 28.0.3 will be used.
    To suppress this warning, remove "buildToolsVersion '26.0.2'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)

    > Configure project :react-native-android-location-services-dialog-box 
    WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
    It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
    WARNING: The specified Android SDK Build Tools version (25.0.2) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.2.1.
    Android SDK Build Tools 28.0.3 will be used.
    To suppress this warning, remove "buildToolsVersion '25.0.2'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

This is my build.gradle file :


    // Top-level build file where you can add configuration options common to all sub-projects/modules.

    buildscript {
        repositories {
            google()
            jcenter()
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'

            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
            classpath 'com.google.gms:google-services:3.0.0'
        }
    }

    allprojects {
        repositories {
            google()
            mavenLocal()
            jcenter()
            maven {
                // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
                url "$rootDir/../node_modules/react-native/android"
            }

            // jitpack repo is necessary to fetch ucrop dependency
            maven { url "https://jitpack.io" }
        }
    }

This is my gradle wrapper distribution url :

distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.zip

I tried changing the order of different repositories and still getting the same error.

like image 385
Ameen P Avatar asked Dec 10 '18 20:12

Ameen P


People also ask

How do I remove the old version of React Native?

The " Old Version" label will be removed automatically once you edit your original post with the results of running react-native info on a project using the latest release. Sorry, something went wrong.

Which Android SDK version is supported for Android Gradle plugin?

WARNING: The specified Android SDK Build Tools version (25.0.2) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.2.1. Android SDK Build Tools 28.0.3 will be used.

Is it possible to replace Google () with Maven style in Android Gradle?

Could not find com.android.tools.build:gradle:2.2.3. You are still searching for AGP 2.2.3 for your project :react-native-fetch-blob. For those React Native or CordovaLib projects that are with Android Gradle Plugin lower versions, e.g. 2.2.3, you can try to replace the google () with below maven style, and add the android tools workaround.

Is msspl-piyaleemaiti a React Native issue?

@MSSPL-PiyaleeMaiti This is not a react-native issue. It is caused by some wrong operation by jcenter and google and react native can do nothing on this.


Video Answer


2 Answers

It seems com.android.tools.build:gradle:2.2.3 was removed from the jcenter repository.

Try adding this code to your top-level build.gradle file:

subprojects {project ->
    if (project.name.contains('react-native-fetch-blob')) {
        buildscript {
            repositories {
                maven { url "https://dl.bintray.com/android/android-tools/"  }
            }    
        }
    }
}
like image 102
Niels Ladekarl Avatar answered Oct 19 '22 03:10

Niels Ladekarl


As seen the workaround from google issuetracker: https://issuetracker.google.com/issues/120759347#comment44

Seeing your error logs:

  • What went wrong: A problem occurred configuring project ':react-native-fetch-blob'. Could not resolve all artifacts for configuration ':react-native-fetch-blob:classpath'. Could not find com.android.tools.build:gradle:2.2.3.

You are still searching for AGP 2.2.3 for your project :react-native-fetch-blob.

For those React Native or CordovaLib projects that are with Android Gradle Plugin lower versions, e.g. 2.2.3, you can try to replace the google() with below maven style, and add the android tools workaround. So, modify your top-level build.gradle file as below for both buildscripts and allprojects:

buildscripts {
    repositories {

        // below is the workaround for android tools 
        maven {
            artifactUrls "https://dl.bintray.com/android/android-tools/"
            url "https://jcenter.bintray.com"
        }
        maven {
            url "https://maven.google.com"
        }

        // ... 
        jcenter()

    }
}

allprojects {
    repositories {

        // below is the workaround for android tools 
        maven {
            artifactUrls "https://dl.bintray.com/android/android-tools/"
            url "https://jcenter.bintray.com"
        }
        maven {
            url "https://maven.google.com"
        }

        // ... 
        jcenter()

    }
}

Clean up your project and then perform a new Sync.

  • Try "File"->"Invalidate Caches / Restart ..."
  • Try to clean up your .gradle and .idea directory under your project root directory.

See below references:

  • https://stackoverflow.com/a/51151050/8034839
  • https://stackoverflow.com/a/51354236/8034839

For the warnings:

WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.

Because you are using AGP (Android Gradle Plugin 3.2.1), the build configuration compile has changed to implementation and api. Just replace all the compile with implementation or api will let this warning disappear. See: https://developer.android.com/studio/build/dependencies#dependency_configurations for more details.

WARNING: The specified Android SDK Build Tools version (25.0.2) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.2.1. Android SDK Build Tools 28.0.3 will be used. To suppress this warning, remove "buildToolsVersion '25.0.2'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

This warning is just for your information, you can simply ignore it or remove buildToolsVersion '25.0.2' from your build.gradle file to suppress this warning.

like image 1
shizhen Avatar answered Oct 19 '22 05:10

shizhen