启动 flutter项目时报Could not find com.android.tools.build:gradle:3.2.1.

Error running Gradle:
ProcessException: Process "D:\Android\APP path\flutter_app2\flutter_app2\android\gradlew.bat" exited abnormally:

> Configure project :app

Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\Android\APP path\flutter_app2\flutter_app2\android\app\build.gradle' line: 25

* What went wrong:
A problem occurred evaluating project ':app'.
> Could not resolve all artifacts for configuration 'classpath'.
   > Could not find com.android.tools.build:gradle:3.2.1.
     Searched in the following locations:
       - https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
       - https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.jar
       - http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
       - http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.jar
     Required by:
         unspecified:unspecified:unspecified

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full
insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
Picked up _JAVA_OPTIONS: -Djava.NET.preferIPv4Stack=true
  Command: D:\Android\APP path\flutter_app2\flutter_app2\android\gradlew.bat app:properties

Please review your Gradle project setup in the android/ folder.

大致意思是说:运行Gradle时出错,导致构建flutter构建失败

原因是因为获取不到 com.android.tools.build:gradle:3.2.1

原因一:

获取不到的原因一般是因为在中国没办法访问谷歌资源(有外网,翻墙等的除外),此时的解决办法是 改用阿里的镜像

分两步:

  • 第一步:修改掉项目下的 android目录下的 build.gradle 文件,把 google()jcenter()这两行去掉。
    并在下面添加阿里的链接 (注意:有两处修改)
    maven { url 'https://maven.aliyun.com/repository/google' }
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    
    如下:
    buildscript {
        repositories {
    //        google()
    //        jcenter()
    		// 添加
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/jcenter' }
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
        }
    }
    
    allprojects {
        repositories {
    //        google()
    //        jcenter()
    //        maven {
    //            url 'https://google.bintray.com/exoplayer/'
    //        }
    		// 添加
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/jcenter' }
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
        }
    }
    
    rootProject.buildDir = '../build'
    subprojects {
        project.buildDir = "${rootProject.buildDir}/${project.name}"
    }
    subprojects {
        project.evaluationDependsOn(':app')
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    
    
  • 第二步:修改 Flutter SDK 包下的 flutter.gradle 文件
    路径根据你的sdk存放位置,例如我的是D:\SDK\Flutter\packages\flutter_tools\gradle\flutter.gradle
    同样将 google()jcenter() 修改为阿里的链接
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    
    如下:
    buildscript {
        repositories {
            //google()
            //jcenter()
            // 添加
    		maven { url 'https://maven.aliyun.com/repository/jcenter' }
    		maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
        }
    }
    

至此,在国内没办法访问谷歌资源的问题就解决了

然而,我的问题并没解决

仔细看报错信息后,发现找不到以下资源地址

    -  https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
    -  https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.jar
    -  http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom
    -  http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.jar

看到这里说明阿里链接是配置上了的,之所以找不到是因为gradle-3.2.1这个3.2.1版本太高了,应该是最新的

阿里连接中的gradle最高版本好像才3.1.2,所以获取不到

所以,解决办法是将项目下的android目录下的build.gradle文件和flutter SDK包下的flutter.gradle文件中的gradle版本改为阿里镜像中存在的版本

	dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }

来自于 https://blog.youkuaiyun.com/qq_33684444/article/details/86656301

<think>好的,我现在需要解决用户在Flutter项目中遇到的Gradle构建错误,具体是“Failed to create Jar file”。用户已经提供了四个引用,我需要分析这些引用中的信息,找出可能的原因和解决方案。 首先,引用[1]提到在构建时出现lint检查问题,用户通过设置`checkReleaseBuilds false`和`abortOnError false`来绕过lint错误。这可能意味着构建过程中lint检查可能导致了构建失败,但用户已经禁用了相关选项,所以可能不是当前问题的主要原因,但可能需要检查是否还有其他lint配置问题。 接下来,引用[2]中的错误提示Gradle项目配置有问题,用户遇到了执行gradlew命令异常的情况。这里建议用户检查`android/`目录下的Gradle配置是否正确,特别是`build.gradle`文件中的依赖项是否有冲突或版本不兼容的问题。另外,可能需要执行清理和重新构建的操作,比如`flutter clean`和重新获取依赖。 引用[3]提到了升级Flutter2.5.3后出现的仓库配置错误,因为Gradle设置优先使用settings repositories而不是项目中的。解决方法是在`settings.gradle`中添加仓库配置,或者在`build.gradle`中使用`repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)`来调整仓库优先级。这可能与当前Jar文件创建失败有关,特别是如果仓库配置不正确导致依赖无法正确下载或解析。 引用[4]指出jar包索引未清理干净,删除的依赖可能仍然被引用,导致编译器找不到文件。这时候需要清理Gradle缓存,删除`build`目录,或者手动检查`build.gradle`文件中的依赖项,确保没有残留的无效依赖。 综合以上信息,“Failed to create Jar file”错误可能由几个原因引起:依赖项问题、仓库配置错误、缓存残留或Gradle版本不兼容。解决方案可能包括清理项目、调整仓库配置、检查依赖项、更新Gradle版本或Flutter插件等步骤。接下来需要将这些可能的解决方法整理成结构清晰的步骤,并引用相关的引用来源。</think>针对Flutter项目中出现的`GradleException: Failed to create Jar file`错误,以下是分步解决方案: --- ### **1. 清理项目构建缓存** Gradle构建过程中可能残留旧文件或错误缓存,导致Jar生成失败。 - **执行以下命令**: ```bash flutter clean # 清理Flutter构建缓存 cd android && ./gradlew clean # 清理Android项目Gradle缓存 ``` - **手动删除残留文件**: 检查`android/app/build`目录,若存在残留的`.jar`或临时文件,直接删除。 --- ### **2. 检查依赖项冲突** 引用[4]指出未清理的依赖项可能导致构建失败[^4]。 - **核对`build.gradle`文件**: 在`android/app/build.gradle`的`dependencies`部分,确认所有依赖项命名正确且版本兼容。 **示例**: ```gradle dependencies { implementation &#39;com.example:library:1.0.0&#39; // 确保无重复或已删除的依赖 } ``` - **排除重复依赖**: 若存在多个库引用了相同模块,使用`exclude`: ```gradle implementation(&#39;com.example:library:1.0.0&#39;) { exclude group: &#39;org.conflict&#39;, module: &#39;module-name&#39; } ``` --- ### **3. 调整Gradle仓库配置** 引用[3]提到Gradle仓库优先级问题可能引发插件冲突[^3]。 - **修改`settings.gradle`**: 在`android/settings.gradle`中明确声明仓库优先级: ```gradle dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) // 强制使用全局仓库 repositories { google() mavenCentral() } } ``` - **或在`build.gradle`中添加仓库**: 确保所有依赖仓库(如`maven`、`jcenter`)在`allprojects/repositories`中声明。 --- ### **4. 更新Gradle与插件版本** Gradle版本过旧可能与Flutter插件不兼容。 - **修改`android/gradle/wrapper/gradle-wrapper.properties`**: 升级至稳定版本(如7.5或更高): ```properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip ``` - **更新`android/build.gradle`中的插件版本**: 例如: ```gradle classpath &#39;com.android.tools.build:gradle:7.3.1&#39; ``` --- ### **5. 关闭Lint检查(临时方案)** 引用[1]提到可通过关闭Lint检查避免构建中断[^1]。 在`android/app/build.gradle`中添加: ```gradle android { lintOptions { checkReleaseBuilds false abortOnError false } } ``` --- ### **6. 检查Flutter模块集成** 引用[2]指出Flutter模块集成错误可能导致Gradle配置异常[^2]。 - **确认Flutter模块路径正确**: 在`settings.gradle`中检查`include &#39;:flutter&#39;`和路径配置。 - **重新生成`gradle`文件**: 删除`android/`目录下的`.gradle`文件夹,重新运行`flutter pub get`。 --- ### **其他建议** - **检查磁盘空间**:确保磁盘有足够空间生成Jar文件。 - **关闭杀毒软件**:某些安全软件可能误拦截文件操作。 - **查看完整日志**:运行`flutter build apk --verbose`获取详细错误信息。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值