初学Flutter,Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2)解决办法

本文分享了一位Flutter初学者在运行项目时遇到的依赖问题及解决方案,通过修改build.gradle文件,替换源为阿里云镜像,成功解决了找不到lint-gradle-api.jar的错误。

初学Flutter,第一运行项目时出现Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2)这个错,百度了一圈,有幸有遇到的大牛,共享了此解决办法,为了以后遇到同样问题,特记录;(转载链接再文章后面)

 

刚建好一个demo 编译运行一个demo 控制台就出现如下情况

Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
* Error running Gradle:
ProcessException: Process "/Users/rabbit/develop/android/flutter_app/android/gradlew" exited abnormally:
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 '/Users/rabbit/develop/android/flutter_app/android/app/build.gradle' line: 25

* What went wrong:
A problem occurred evaluating project ':app'.
> Could not resolve all files for configuration 'classpath'.
   > Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar

* 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 0s
  Command: /Users/rabbit/develop/android/flutter_app/android/gradlew app:properties

Finished with error: Please review your Gradle project setup in the android/ folder.

网上找了也没有遇上合适的答案来解决它,我看到提示未找到 com.android.tools.lint:lint-gradle-api:26.1.2 但根据提示地址打开无法下载,如果能下载下来应该放在什么位置呢!

已解决:

解决方法1:修改build.gradle,注释掉jcenter(),google()。使用阿里的镜像。原因是jcenter google库无法访问到导致的问题。虽然我有万能的爬墙工具,开启全局代理依然被我们伟大的发改委墙掉了!

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.1.2'
    }
}

allprojects {
    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' }
    }
}


第二步:找到fluttersdk目录 进入如下目录

Macintosh HD⁩ ▸ ⁨用户⁩ ▸ ⁨rabbit⁩ ▸ ⁨资源库⁩ ▸ ⁨Flutter⁩ ▸ ⁨packages⁩ ▸ ⁨flutter_tools⁩ ▸ ⁨gradle⁩
找到下 flutter.gradle文件 找如如下内容替换成和我一样的 把jcenter注释掉。

​buildscript {
    repositories {
        //jcenter()
        //maven {
        //    url 'https://dl.google.com/dl/android/maven2'
        //}
        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.1.2'
    }
}
至此从新运行,解决掉问题。

原文地址:https://segmentfault.com/q/1010000016775662

 

<think>我们正在解决一个特定的问题:在构建Flutter项目时,出现"Could not download kotlin-gradle-plugin-2.2.0-gradle811.jar"错误。这个错误表明Gradle在下载Kotlin Gradle插件时失败。根据引用[^1][^4],我们知道Gradle的依赖库默认下载到用户目录下的.gradle/caches/modules-2/files-2.1目录中。同时,引用[^2]提供了Kotlin版本和Gradle版本的兼容性建议。 可能的原因: 1. 网络问题导致下载失败。 2. 仓库配置不正确,无法访问到该依赖。 3. 本地缓存损坏。 解决方案: 步骤1:检查网络和仓库配置 确保你的build.gradle文件(通常是项目根目录下的build.gradle)中配置了正确的仓库。在buildscript和allprojects部分,应该包含google()和mavenCentral()。例如: ```groovy buildscript { repositories { google() mavenCentral() // 如果有私有仓库,也需要配置 } dependencies { classpath "com.android.tools.build:gradle:7.3.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.0" // 注意:这里版本号根据你的需求 } } allprojects { repositories { google() mavenCentral() } } ``` 步骤2:手动下载并放置到缓存目录(如果网络问题无法解决) 根据引用[^1]和[^4]提供的路径,我们可以手动下载该jar包并放入缓存目录。 1. 确定需要下载的依赖:org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.0 2. 下载地址:可以在Maven Central仓库搜索,例如:https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/2.2.0/kotlin-gradle-plugin-2.2.0.jar 注意:我们需要的文件是kotlin-gradle-plugin-2.2.0.jar,但错误信息中提到了kotlin-gradle-plugin-2.2.0-gradle811.jar,实际上,Gradle在下载后可能会重命名(加上gradle版本号)?但根据引用[^1]的经验,我们只需要下载不带gradle版本号的jar包,然后放入缓存目录,并按照缓存目录的规则放置。 3. 缓存目录结构(以Windows为例): - 基础目录:`C:\Users\你的用户名\.gradle\caches\modules-2\files-2.1` - 然后按照`group`(这里是org.jetbrains.kotlin)→ `artifact`(kotlin-gradle-plugin)→ `version`(2.2.0)→ 随机目录名(通常为32位哈希值)→ 文件 4. 如何放置? - 首先,在`files-2.1`目录下找到`org.jetbrains.kotlin`目录,然后进入`kotlin-gradle-plugin`目录,再进入`2.2.0`目录。如果不存在,可以手动创建。 - 在`2.2.0`目录下,通常会有一个或多个由随机字符串命名的子目录(例如:1234567890abcdef...)。我们可以创建一个新的随机目录(名字任意,但通常为40个字符的十六进制字符串,比如`1234567890abcdef1234567890abcdef12345678`),然后将下载的jar文件放入这个目录,并重命名为`kotlin-gradle-plugin-2.2.0.jar`(注意:不要带gradle811,因为Gradle在查找时是根据坐标和版本来的,不会根据这个后缀)。 5. 但是,错误信息中要求的是`kotlin-gradle-plugin-2.2.0-gradle811.jar`,这可能是Gradle根据其版本自动添加的后缀。因此,我们可能需要同时放置两个文件?或者只放置原始文件,然后让Gradle自己生成?实际上,我们只需要放置原始文件,然后Gradle会在缓存中生成其他格式的文件。所以,我们放入`kotlin-gradle-plugin-2.2.0.jar`即可。 6. 如果已经存在一个随机目录,里面可能有其他文件(比如.pom文件),那么我们可以将jar包也放入同一个随机目录中。 步骤3:清理和重新构建 放置好jar包后,执行以下命令清理并重新构建: ```bash flutter clean cd android ./gradlew clean build --refresh-dependencies ``` 步骤4:升级或降级Kotlin版本(如果手动下载不成功或版本冲突) 根据引用[^2],我们建议使用与项目兼容的Kotlin版本。例如,如果你使用的Gradle版本较旧,可能不支持Kotlin 2.2.0。或者,你可以尝试升级Kotlin插件版本到与你的Flutter项目兼容的版本。 在项目的`build.gradle`中,修改Kotlin插件的版本。例如,升级到引用[^2]中建议的版本(1.8.221.9.10)可能更稳定。但注意,Flutter项目对Kotlin版本有要求,通常Flutter官方会指定一个范围。你可以查看Flutter文档或创建新项目来查看默认的Kotlin版本。 例如,将Kotlin版本改为1.7.10(这是一个比较常见的与Flutter兼容的版本): ```groovy classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10" ``` 然后同步项目。 步骤5:使用libs.versions.toml统一管理版本(可选,但推荐) 引用[^3]提到,可以使用`libs.versions.toml`文件来管理依赖版本。这样能避免版本冲突。在`gradle`目录下创建`libs.versions.toml`文件,然后配置: ```toml [versions] kotlin = "1.7.10" # 或者你需要的版本 [libraries] kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } ``` 然后在`build.gradle`中引用: ```groovy dependencies { classpath libs.kotlin.gradle.plugin } ``` 这样,版本统一管理,减少错误。 步骤6:检查Gradle版本 确保你的Gradle版本与Kotlin插件版本兼容。例如,Kotlin 1.7.10需要Gradle 7.0以上。可以在`gradle/wrapper/gradle-wrapper.properties`中修改: ```properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip ``` 总结: 优先尝试手动下载并放入缓存(步骤2),如果不行,则考虑升级/降级Kotlin插件版本(步骤4)并确保Gradle版本兼容(步骤6)。使用统一版本管理(步骤5)可以预防此类问题。 相关问题: 1. 如何手动下载Gradle依赖并放入缓存? 2. Flutter项目推荐使用哪个版本的Kotlin? 3. 如何配置Gradle的libs.versions.toml文件? 4. 如何解决Gradle依赖下载超时问题? 5. 如何升级Gradle版本?</think>### 解决"Could not download kotlin-gradle-plugin-2.2.0-gradle811.jar"错误 #### 问题原因分析 该错误表示Gradle无法下载指定版本的Kotlin Gradle插件(2.2.0)。根据引用[^1][^4],Kotlin依赖默认存储在`~/.gradle/caches/modules-2/files-2.1`目录。失败原因可能是: 1. **网络问题**:无法访问Maven仓库 2. **版本冲突**:项目要求的Kotlin版本与插件不兼容 3. **缓存损坏**:本地缓存文件不完整或损坏 4. **仓库配置错误**:build.gradle未正确配置仓库源 #### 解决方案步骤 ##### 1. 手动下载并放置依赖(推荐) ```bash # 下载所需JAR文件 wget https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/2.2.0/kotlin-gradle-plugin-2.2.0.jar # 创建目标目录(Windows) mkdir C:\Users\你的用户名\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-gradle-plugin\2.2.0 # 移动文件到缓存目录 mv kotlin-gradle-plugin-2.2.0.jar C:\Users\你的用户名\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-gradle-plugin\2.2.0\ ``` 手动放置后Gradle会自动生成元数据文件[^1] ##### 2. 升级Kotlin版本(解决兼容性问题) 在`android/build.gradle`中更新版本: ```groovy buildscript { ext.kotlin_version = '1.8.22' // 使用引用[^2]推荐版本 dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } ``` 同时更新`app/build.gradle`: ```groovy dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } ``` ##### 3. 配置仓库镜像加速 在`android/build.gradle`添加国内镜像源: ```groovy allprojects { repositories { // 阿里云镜像 maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/google' } // 官方仓库 google() mavenCentral() } } ``` ##### 4. 清理Gradle缓存 ```bash # 清理Flutter缓存 flutter clean # 清理Gradle缓存 cd android ./gradlew cleanBuildCache ``` ##### 5. 使用libs.versions.toml统一管理版本 创建`gradle/libs.versions.toml`文件: ```toml [versions] kotlin = "1.8.22" agp = "7.4.0" [libraries] kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } ``` 在`build.gradle`引用: ```groovy plugins { alias(libs.plugins.kotlin.gradle.plugin) } ``` 这能避免版本冲突[^3] #### 验证解决方案 ```bash flutter run -v # 查看详细日志确认问题解决 ``` #### 版本兼容性参考 | 组件 | 推荐版本 | 备注 | |------|----------|------| | Kotlin | 1.8.22 | 与AGP 7.4+兼容[^2] | | AGP | 7.4.0 | Android Gradle插件 | | Gradle | 7.5+ | wrapper版本 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值