【Flutter】unable to access ‘https://chromium.googlesource.com/webm/libwebp/‘

本文介绍了解决CocoaPods中libwebp依赖问题的方法,通过修改源代码仓库URL为HTTPS,并重新执行pod install命令,解决在安装过程中遇到的源码获取错误。

前往文件夹(command+shift+G)~/.cocoapods/repos/master/Specs/1/9/2/libwebp

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把source - git中的url更换成https://github.com/webmproject/libwebp.git然后保存 最后重新执行pod install。

<think> 我们正在解决Flutter项目中`android/build.gradle.kts`文件编译报错的问题。根据之前的错误信息,问题集中在第5-7行的`maven`仓库配置上,错误提示为“Unexpected tokens (use ';' to separate expressions on the same line)”。这通常是因为Groovy语法被错误地用在Kotlin DSL(即`.kts`文件)中。 ### 错误原因分析 1. **语法不匹配**:在Kotlin DSL(`.kts`)中,配置仓库的语法与Groovy DSL(`.gradle`)不同。Groovy中允许的`maven { url '...' }`在Kotlin DSL中必须写成`maven { url = uri("...") }`。 2. **符号使用**:Kotlin DSL要求使用等号(`=`)进行赋值,并且URL必须用`uri`函数包裹。 ### 解决方案 我们需要将`build.gradle.kts`文件中仓库配置的Groovy语法转换为Kotlin DSL语法。以下是具体修改步骤: #### 修改前(错误写法): ```kotlin buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } // ❌ 错误:Groovy语法 maven { url 'https://maven.aliyun.com/repository/jcenter' } // ❌ maven { url 'https://maven.aliyun.com/repository/public' } // ❌ } } ``` #### 修改后(正确写法): ```kotlin buildscript { repositories { maven { url = uri("https://maven.aliyun.com/repository/google") } // ✅ 正确:Kotlin DSL maven { url = uri("https://maven.aliyun.com/repository/jcenter") } // ✅ maven { url = uri("https://maven.aliyun.com/repository/public") } // ✅ } } ``` ### 完整示例 以下是修改后的`android/build.gradle.kts`文件示例(仅展示相关部分): ```kotlin // android/build.gradle.kts buildscript { repositories { google() mavenCentral() // 添加阿里云仓库(使用Kotlin DSL语法) maven { url = uri("https://maven.aliyun.com/repository/google") } maven { url = uri("https://maven.aliyun.com/repository/jcenter") } maven { url = uri("https://maven.aliyun.com/repository/public") } } dependencies { classpath("com.android.tools.build:gradle:7.4.2") // 使用适合的AGP版本 classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22") } } ``` ### 附加建议 1. **移除重复仓库**:`google()`和`mavenCentral()`已经包含了大部分仓库,阿里云仓库可作为镜像加速。若网络畅通,可考虑只保留阿里云仓库。 2. **版本统一**:确保`com.android.tools.build:gradle`(即Android Gradle Plugin, AGP)和`kotlin-gradle-plugin`版本与项目兼容。Flutter 3.13+通常要求: - AGP: 7.4.x 或 8.0.x - Kotlin: 1.8.x ### 验证修改 1. 保存文件后,在终端执行: ```bash flutter clean flutter run ``` 2. 如果问题依旧,尝试同步Gradle: ```bash cd android ./gradlew --refresh-dependencies ``` ### 引用说明 在修改过程中,我们参考了Gradle官方关于Kotlin DSL的文档,特别是仓库配置的语法要求[^1]。同时,关于版本兼容性的建议基于Flutter官方文档中对Android构建环境的要求[^2]。 --- §§相关问题§§ 1. 如何在Flutter项目中正确配置Kotlin DSL构建脚本? 2. Android Gradle插件(AGP)版本与Gradle版本如何对应? 3. 如何优化Flutter项目的Gradle构建速度? 4. Kotlin DSL与Groovy DSL在Android项目中有哪些主要区别? </think> ### 解决 Flutter 项目中 `android/build.gradle.kts` 文件编译错误的修改方法 #### 核心问题分析 根据错误信息和引用内容[^1][^2],主要存在两类问题: 1. **语法错误**:在 Kotlin DSL (`.kts`) 文件中使用了 Groovy 语法 2. **依赖引用错误**:`Unresolved reference: Dep` 表示依赖管理配置不正确 #### 解决方案分步指南 ##### 步骤 1:修正仓库声明语法(解决 `Unexpected tokens` 错误) ```kotlin // android/build.gradle.kts buildscript { repositories { // 修正前(Groovy 语法): // maven { url 'https://maven.aliyun.com/repository/google' } // 修正后(Kotlin DSL 语法): maven { url = uri("https://maven.aliyun.com/repository/google") } maven { url = uri("https://maven.aliyun.com/repository/jcenter") } maven { url = uri("https://maven.aliyun.com/repository/public") } } } ``` **语法要点**: - 使用 `uri()` 包裹 URL 字符串 - 使用 `=` 赋值运算符 - 完整的花括号 `{}` 包裹配置块 ##### 步骤 2:解决 `Unresolved reference: Dep` 错误 ###### 方案 A:直接声明依赖版本(推荐) ```kotlin // android/build.gradle.kts buildscript { dependencies { // 直接指定版本号 classpath("com.android.tools.build:gradle:8.0.2") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22") } } ``` ###### 方案 B:正确配置依赖管理 1. 在项目根目录创建 `buildSrc` 模块: ``` project-root/ ├── buildSrc/ │ ├── build.gradle.kts │ └── src/main/kotlin/Dependencies.kt ├── android/ └── ... ``` 2. `buildSrc/build.gradle.kts`: ```kotlin plugins { `kotlin-dsl` } repositories { google() mavenCentral() } ``` 3. `buildSrc/src/main/kotlin/Dependencies.kt`: ```kotlin object Dep { const val androidGradle = "com.android.tools.build:gradle:8.0.2" const val kotlinGradle = "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22" } ``` 4. 在 `android/build.gradle.kts` 中引用: ```kotlin buildscript { dependencies { classpath(Dep.Android.androidGradle) classpath(Dep.Android.kotlinGradle) } } ``` ##### 步骤 3:同步 Kotlin 版本(引用[^2]的解决方案) ```kotlin // android/app/build.gradle.kts plugins { id("com.android.application") id("org.jetbrains.kotlin.android") version "1.8.22" // 确保版本一致 } android { kotlinOptions { jvmTarget = "1.8" } } ``` ##### 步骤 4:完整配置示例 ```kotlin // android/build.gradle.kts buildscript { repositories { google() mavenCentral() maven { url = uri("https://maven.aliyun.com/repository/public") } } dependencies { classpath("com.android.tools.build:gradle:8.0.2") // 直接声明版本 classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22") } } allprojects { repositories { google() mavenCentral() maven { url = uri("https://maven.aliyun.com/repository/public") } } } ``` #### 验证步骤 1. 执行清理命令: ```bash flutter clean rm -rf android/.gradle ``` 2. 重新同步 Gradle: ```bash cd android && ./gradlew --refresh-dependencies ``` 3. 运行 Flutter 项目: ```bash flutter run ``` #### 常见问题排查 1. 如果仍有 `Unresolved reference` 错误: - 确认 `buildSrc` 模块配置正确 - 在 Android Studio 中执行 **File > Sync Project with Gradle Files** 2. 版本兼容问题解决方案: ```kotlin // android/gradle.properties android.useAndroidX=true kotlin.code.style=official org.gradle.jvmargs=-Xmx2048m ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值