问题
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