Gradle 同步失败:无法解析所有工件以进行配置

Posted

技术标签:

【中文标题】Gradle 同步失败:无法解析所有工件以进行配置【英文标题】:Gradle Sync Failure: Could not resolve all artifacts for configuration 【发布时间】:2020-08-24 00:46:46 【问题描述】:

尝试同步 Gradle 时出现以下错误:

A problem occurred configuring project ':react-native-google-signin'.
> Could not resolve all artifacts for configuration ':react-native-google-signin:classpath'.
   > Could not find com.android.tools.build:gradle:3.6.3.
     Searched in the following locations:
       - https://jcenter.bintray.com/com/android/tools/build/gradle/3.6.3/gradle-3.6.3.pom
       - https://jcenter.bintray.com/com/android/tools/build/gradle/3.6.3/gradle-3.6.3.jar
     Required by:
         project :react-native-google-signin

我进行了搜索,但无法找到答案。这里有一个类似的问题:React native android can not find com.android.tools.build:gradle:3.6.3

看上面这表明关闭离线模式,它没有打开,所以很遗憾,这不是答案。

根 bundle.gradle 文件如下所示:

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

buildscript 
  ext 
        buildToolsVersion = "28.0.3"
        minSdkVersion = 16
        compileSdkVersion = 28
        targetSdkVersion = 28
        supportLibVersion = "28.0.0-alpha1"
      reactNativeVersion = "0.59.9"
    googlePlayServicesAuthVersion = "16.0.1"
  
    repositories 
        google()
        maven 
          url 'https://maven.google.com/'
        
        jcenter()
        mavenCentral()
        maven 
            url 'https://maven.fabric.io/public'
        
        maven  url 'https://dl.bintray.com/android/android-tools' 

      maven url "$projectDir/../node_modules/react-native/android"
    
    dependencies 
        classpath('com.android.tools.build:gradle:3.4.1')
        classpath 'com.google.gms:google-services:4.1.0'
        classpath 'io.fabric.tools:gradle:1.25.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


allprojects 
    repositories 
        google()
        mavenLocal()
        maven 
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        
        // React native video - exoplayer missing from google repos, temp fix
        maven 
            url "https://google.bintray.com/exoplayer/"
        
        maven 
            url 'https://maven.google.com/'
            name 'Google'
        
        jcenter()
//        configurations.all 
//            resolutionStrategy 
//                force 'com.facebook.android:facebook-android-sdk:4.28.0'
//            
//        
    


根据错误,它似乎只在 jcenter 中搜索而不在其他地方搜索?我不确定,但是当我在网上搜索时,这个特定的版本可以从 maven.google.com 获得吗?

【问题讨论】:

解决了吗? 不,我无法深入了解它。因为我需要一个 react-native 升级,所以我首先在做这个,希望我能把它清理干净 【参考方案1】:

用这个替换你的android/build.gradle,即用这个替换你的项目级gradle

buildscript 
    repositories 
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath 'com.google.gms:google-services:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


allprojects 
    repositories 
        mavenLocal()
        maven url "https://maven.google.com" //<---- this should be added and should be aboce jcenter
        maven url "$rootDir/../node_modules/react-native/android"
        jcenter()
    

然后在android/中清除你的gradle

gradlew clean

然后运行 ​​react native 应用程序。

注意:在上面的 sn-p 中使用你自己的 gradle 和 google 服务版本

【讨论】:

我已经编辑了问题并包含了整个 build.gradle 文件。如果仍然需要相同的更改,似乎正确的部分在正确的位置? 嘿,我之前遇到过这个问题,所以我复制粘贴了我的最终代码:P。你可以试试sn-p中提到的代码,试试看。【参考方案2】:

你应该转到Androidx

AndroidX 是对不再维护的原始 Android 支持库的重大改进。您可以通过从菜单栏中选择 Refactor &gt; Migrate to AndroidX 将现有项目迁移到 AndroidX

升级

    classpath 'com.android.tools.build:gradle:3.6.3'
    classpath 'com.google.gms:google-services:4.3.2'

    buildToolsVersion = "29.0.2"
    minSdkVersion = 16
    compileSdkVersion = 29
    targetSdkVersion = 29

【讨论】:

谢谢,您能否阐明第二部分的含义。升级这个和那个。我到底该怎么处理这些,或者我只是在运行 Migrate to AndroidX ? @StuartM 是的。首先备份代码然后迁移。希望它会工作 @StuartM 解决了吗? @StuartM 解决了吗?【参考方案3】:

你应该尝试这样做:

react native link

【讨论】:

【参考方案4】:

启用自动升级我的 gradle 文件的 Flutter Web 后出现此错误, 所以首先禁用你的颤振网络并将你的 compileSdkVersion 和 targetSdkVersion 更新到最新版本,现在是 30

【讨论】:

以上是关于Gradle 同步失败:无法解析所有工件以进行配置的主要内容,如果未能解决你的问题,请参考以下文章

android-jetifier: "无法解析所有工件";新项目上的“改造工件失败”

无法解析配置 ':classpath' 的所有工件。无法解析 com.android.tools.build:gradle:3.5.3。显示错误

无法解析配置“:classpath”的所有工件。 > 无法解析 com.android.tools.build:gradle:4.1.0

gradle 无法解析配置的任何依赖项:classpath

任务 ':app:lintVitalRelease' 执行失败。 > 无法解析配置 ':app:debugRuntimeClasspath' 的所有工件

很长时间后运行 gradle 任务失败