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

断了今生、忘了曾经 提交于 2019-12-01 14:44:02

问题


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.


回答1:


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/"  }
            }    
        }
    }
}



回答2:


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.



来源:https://stackoverflow.com/questions/53713098/react-native-could-not-find-com-android-tools-buildgradle2-2-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!