React Native:找不到 com.android.tools.build:gradle:2.2.3

Posted

技术标签:

【中文标题】React Native:找不到 com.android.tools.build:gradle:2.2.3【英文标题】:React Native : Could not find com.android.tools.build:gradle:2.2.3 【发布时间】:2019-05-11 19:00:08 【问题描述】:

我正在使用 react native 制作一个 android 应用程序,这是我得到的错误:

FAILURE:构建失败并出现异常。 * 什么地方出了错: 配置项目“:react-native-fetch-blob”时出现问题。 > 无法解析配置“:react-native-fetch-blob:classpath”的所有工件。 > 找不到 com.android.tools.build:gradle:2.2.3。 在以下位置搜索: 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 要求: 项目:react-native-fetch-blob

我也收到以下警告:

> 配置项目:app 警告:配置“编译”已过时,已替换为“实施”和“API”。 它将在 2018 年底被删除。有关更多信息,请参阅:http://d.android.com/r/tools/update-dependency-configurations.html 警告:指定的 Android SDK 构建工具版本 (26.0.2) 将被忽略,因为它低于 Android Gradle 插件 3.2.1 的最低支持版本 (28.0.3)。 将使用 Android SDK 构建工具 28.0.3。 要禁止显示此警告,请从您的 build.gradle 文件中删除“buildToolsVersion '26.0.2'”,因为每个版本的 Android Gradle 插件现在都有一个默认版本的构建工具。 registerResGeneratingTask 已弃用,使用 registerGeneratedResFolders(FileCollection) registerResGeneratingTask 已弃用,使用 registerGeneratedResFolders(FileCollection) > 配置项目:react-native-android-location-services-dialog-box 警告:配置“编译”已过时,已替换为“实施”和“API”。 它将在 2018 年底被删除。有关更多信息,请参阅:http://d.android.com/r/tools/update-dependency-configurations.html 警告:指定的 Android SDK 构建工具版本 (25.0.2) 将被忽略,因为它低于 Android Gradle 插件 3.2.1 的最低支持版本 (28.0.3)。 将使用 Android SDK 构建工具 28.0.3。 要禁止显示此警告,请从您的 build.gradle 文件中删除“buildToolsVersion '25.0.2'”,因为每个版本的 Android Gradle 插件现在都有一个默认版本的构建工具。

这是我的 build.gradle 文件:

// ***构建文件,您可以在其中添加所有子项目/模块通用的配置选项。 构建脚本 存储库 谷歌() 中心() mavenCentral() 依赖 类路径'com.android.tools.build:gradle:3.2.1' // 注意:不要将您的应用程序依赖项放在这里;他们属于 // 在单个模块 build.gradle 文件中 类路径 'com.google.gms:google-services:3.0.0' 所有项目 存储库 谷歌() mavenLocal() 中心() 行家 // 所有的 React Native(JS、Obj-C 源代码、Android 二进制文件)都是从 npm 安装的 网址“$rootDir/../node_modules/react-native/android” // jitpack repo 是获取 ucrop 依赖项所必需的 maven url "https://jitpack.io"

这是我的 gradle 包装器分发网址:

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

我尝试更改不同存储库的顺序,但仍然遇到相同的错误。

【问题讨论】:

能否在此处分享应用程序 build.gradle 文件? 见issuetracker.google.com/issues/120759347#comment30 这是一个谷歌问题,但需要等待一段时间才能使google() repo 恢复正常。 Here's the google issue tracker 关于这个问题,这是一个 google repo 问题,在他们修复它之前无能为力... 【参考方案1】:

似乎 com.android.tools.build:gradle:2.2.3 已从 jcenter 存储库中删除。

尝试将此代码添加到您的*** build.gradle 文件中:

subprojects project ->
    if (project.name.contains('react-native-fetch-blob')) 
        buildscript 
            repositories 
                maven  url "https://dl.bintray.com/android/android-tools/"  
                
        
    

【讨论】:

【参考方案2】:

从 google issuetracker 看到的解决方法:https://issuetracker.google.com/issues/120759347#comment44

查看您的错误日志:

出了什么问题: 配置项目“:react-native-fetch-blob”时出现问题。 无法解析配置“:react-native-fetch-blob:classpath”的所有工件。 找不到 com.android.tools.build:gradle:2.2.3。

您仍在为您的项目:react-native-fetch-blob 搜索 AGP 2.2.3

对于那些使用 Android Gradle Plugin 较低版本的 React NativeCordovaLib 项目,例如2.2.3,您可以尝试将google()替换为maven以下样式,并添加android tools workaround。因此,将您的 *** build.gradle 文件修改为以下 buildscriptsallprojects

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()

    

清理您的项目,然后执行新的同步。

尝试“文件”->“使缓存无效/重新启动...” 尝试清理项目根目录下的.gradle.idea 目录。

请参阅以下参考资料:

https://***.com/a/51151050/8034839 https://***.com/a/51354236/8034839

对于警告:

警告:配置“编译”已过时,已替换为“实施”和“API”。

由于您使用的是 AGP(Aandroid Gradle Plugin 3.2.1),构建配置 compile 已更改为implementationapi。只需将所有compile 替换为implementationapi 即可让此警告消失。有关详细信息,请参阅:https://developer.android.com/studio/build/dependencies#dependency_configurations。

警告:指定的 Android SDK 构建工具版本 (25.0.2) 被忽略,因为它低于 Android Gradle 插件 3.2.1 的最低支持版本 (28.0.3)。 将使用 Android SDK 构建工具 28.0.3。 要禁止显示此警告,请从您的 build.gradle 文件中删除“buildToolsVersion '25.0.2'”,因为每个版本的 Android Gradle 插件现在都有一个默认版本的构建工具。

此警告仅供您参考,您可以忽略它或从您的 build.gradle 文件中删除 buildToolsVersion '25.0.2' 以禁止显示此警告。

【讨论】:

以上是关于React Native:找不到 com.android.tools.build:gradle:2.2.3的主要内容,如果未能解决你的问题,请参考以下文章

React Native --- 找不到模块 '@hapi/joi' 需要堆栈

找不到名称 React$Node React Native

-bash:react-native:找不到命令

-bash:react-native:找不到命令

@react-native-firebase\dynamic-links 找不到符号

包 react-native-reanimated 找不到