Flutter运行app失败 running gradle task assembleDebug

本文解决Flutter项目运行中Gradle任务失败的问题,因Maven仓库连接超时导致依赖无法解析。通过配置阿里云镜像源,实现稳定快速的资源下载,确保项目顺利构建。

flutter环境搭建完成之后,首次运行项目,运行时会卡在Running Gradle task 'assembleDebug'..., 之后就会报这样的错!!

FAILURE: Build failed with an exception.
 
* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Could not resolve all task dependencies for configuration ':app:debugCompileClasspath'.
   > Could not resolve io.flutter:flutter_embedding_debug:1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.
     Required by:
         project :app
      > Could not resolve io.flutter:flutter_embedding_debug:1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.
         > Could not get resource 'https://storage.googleapis.com/download.flutter.io/io/flutter/flutter_embedding_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/flutter_embedding_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.  
            > Could not GET 'https://storage.googleapis.com/download.flutter.io/io/flutter/flutter_embedding_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/flutter_embedding_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.        
               > Connect to storage.googleapis.com:443 [storage.googleapis.com/172.217.27.144] failed: Connection timed out: connect
      > Could not resolve io.flutter:flutter_embedding_debug:1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.       
         > Could not get resource 'https://storage.googleapis.com/download.flutter.io/io/flutter/flutter_embedding_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/flutter_embedding_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.  
            > Could not GET 'https://storage.googleapis.com/download.flutter.io/io/flutter/flutter_embedding_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/flutter_embedding_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.        
               > Connect to storage.googleapis.com:443 [storage.googleapis.com/34.64.4.80] failed: Connection timed out: connect
      > Could not resolve io.flutter:flutter_embedding_debug:1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.
         > Could not get resource 'https://storage.googleapis.com/download.flutter.io/io/flutter/flutter_embedding_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/flutter_embedding_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.  
            > Could not GET 'https://storage.googleapis.com/download.flutter.io/io/flutter/flutter_embedding_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/flutter_embedding_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.        
               > Connect to storage.googleapis.com:443 [storage.googleapis.com/34.64.4.80] failed: Connection timed out: connect
   > Could not resolve io.flutter:x86_debug:1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.
     Required by:
         project :app
      > Could not resolve io.flutter:x86_debug:1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.
         > Could not get resource 'https://storage.googleapis.com/download.flutter.io/io/flutter/x86_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/x86_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.
            > Could not GET 'https://storage.googleapis.com/download.flutter.io/io/flutter/x86_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/x86_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.
               > Connect to storage.googleapis.com:443 [storage.googleapis.com/172.217.27.144] failed: Connection timed out: connect
      > Could not resolve io.flutter:x86_debug:1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.
         > Could not get resource 'https://storage.googleapis.com/download.flutter.io/io/flutter/x86_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/x86_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.
            > Could not GET 'https://storage.googleapis.com/download.flutter.io/io/flutter/x86_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/x86_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.
               > Connect to storage.googleapis.com:443 [storage.googleapis.com/34.64.4.80] failed: Connection timed out: connect
      > Could not resolve io.flutter:x86_debug:1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.
         > Could not get resource 'https://storage.googleapis.com/download.flutter.io/io/flutter/x86_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/x86_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.
            > Could not GET 'https://storage.googleapis.com/download.flutter.io/io/flutter/x86_debug/1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32/x86_debug-1.0.0-6bc433c6b6b5b98dcf4cc11aff31cdee90849f32.pom'.
               > Connect to storage.googleapis.com:443 [storage.googleapis.com/34.64.4.80] failed: Connection timed out: connect
 
* 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 7m 50s
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done                       472.2s (!)
Exception: Gradle task assembleDebug failed with exit code 1

解决方案

查阅发现是 因为Gradle的Maven仓库在国外, 可以使用阿里云的镜像地址。

1.修改项目中android/build.gradle文件

2. 修改flutter sdk安装目录下的 packages/flutter_tools/gradle/flutter.gradle

<think> 我们正在解决两个问题:Gradle任务'assembleDebug'的警告(关于url_launcher_android需要Android SDK 34)和可能的硬件渲染问题(图形伪影) 根据之前的讨论,我们已经给出了关于url_launcher_android插件的解决方案。现在,我们还需要解决硬件渲染问题(如果出现图形伪影)以及Gradle警告。 步骤: 1. 解决Gradle警告:升级SDK版本或降级插件版本(如前所述) 2. 如果出现图形伪影,则启用软件渲染 由于用户提到使用的是模拟器(sdk gphone64 x86 64),模拟器有时会出现图形渲染问题。 具体步骤: 一、解决Gradle警告(url_launcher_android需要Android SDK 34) 方法A(推荐):升级项目的Android SDK版本到34 1. 确保已经安装了Android SDK 34(通过Android Studio的SDK Manager安装) 2. 修改`android/app/build.gradle`文件: - 将`compileSdkVersion`设置为34 - 将`targetSdkVersion`设置为34 3. 如果项目中有其他插件要求SDK 34,则也需要升级它们 方法B:降级url_launcher插件版本 在`pubspec.yaml`中,使用较低版本的url_launcher(例如6.1.10),该版本不需要SDK 34。 二、解决硬件渲染问题(图形伪影) 在运行Flutter应用时,如果看到图形伪影,可以尝试启用软件渲染。在运行命令时添加`--enable-software-rendering`标志: ```bash flutter run --enable-software-rendering ``` 注意:软件渲染可能会降低性能,但可以避免图形伪影。 三、其他建议 - 确保FlutterDart插件是最新版本 - 确保模拟器使用的是最新的系统镜像,并且已经开启了硬件加速(在模拟器的设置中,检查是否启用了硬件GL渲染) - 更新GradleAndroid Gradle插件版本,以确保兼容性 四、详细步骤 步骤1:升级Android SDK版本(针对Gradle警告) 1. 打开Android Studio,进入Tools -> SDK Manager。 2. 在SDK Platforms选项卡中,选择Android 14 (API 34)并安装。 3. 在项目中的`android/app/build.gradle`文件中,修改以下内容: ```gradle android { compileSdkVersion 34 defaultConfig { targetSdkVersion 34 // ... 其他配置 } // ... 其他配置 } ``` 4. 如果出现与AndroidX相关的问题,可能需要迁移到AndroidX(如果还没有迁移的话)。 步骤2:启用软件渲染(针对图形伪影) 在终端中运行应用时,使用: flutter run --enable-software-rendering 或者,在Android Studio中,可以编辑运行配置,在“Additional arguments”中添加`--enable-software-rendering`。 步骤3:清理和重建 在修改了Gradle配置后,执行清理并重新构建: flutter clean flutter pub get flutter run --enable-software-rendering # 如果遇到图形问题 五、如果问题仍然存在 考虑更新或重新安装Flutter和插件: flutter upgrade flutter pub upgrade 六、注意事项 - 升级targetSdkVersion到34需要测试应用在Android 14上的兼容性,因为可能有行为变更。 - 如果使用其他插件,确保它们支持SDK 34。 根据引用[1],Flutter的启动过程涉及多个层次,其中GradleAndroid SDK是关键环节,确保这些环节的版本兼容性很重要。 最后,生成相关问题。 </think>### 解决 Flutter 在 sdk gphone64 x86 64 设备上的 Gradle 和渲染问题 #### 🔧 一、解决 Gradle 任务 'assembleDebug' 警告 1. **升级 Android SDK 版本**(针对 `url_launcher` 插件要求) - 安装 Android SDK 34: ```bash sdkmanager "platforms;android-34" "build-tools;34.0.0" ``` - 修改 `android/app/build.gradle`: ```gradle android { compileSdkVersion 34 // 升级到 API 34 defaultConfig { targetSdkVersion 34 // 升级到 API 34 } } ``` 2. **检查 Gradle 兼容性** 在 `android/gradle/wrapper/gradle-wrapper.properties` 中确保使用兼容 Gradle: ```properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip ``` #### 🎨 二、解决硬件渲染问题(图形伪影) 1. **启用软件渲染**(命令行方式): ```bash flutter run --enable-software-rendering ``` 2. **修改模拟器配置**: - 在 AVD Manager 中编辑模拟器配置 - 取消勾选 **"Enable hardware rendering"** - 选择 **"Software (SwiftShader)"** 作为渲染器 ![AVD 配置示例](https://developer.android.com/static/studio/images/run/avd-config-graphics.png)[^1] 3. **Flutter 渲染引擎优化**: ```dart void main() { // 强制使用 Skia 软件渲染 debugEnhanceIntegrationTesting = true; runApp(MyApp()); } ``` #### 🔄 三、完整问题修复流程 ```mermaid graph TD A[问题出现] --> B{问题类型} B -->|Gradle警告| C[升级SDK34] B -->|图形伪影| D[启用软件渲染] C --> E[修改build.gradle] D --> F[添加--enable-software-rendering] E & F --> G[清理构建缓存] G --> H[flutter clean] H --> I[flutter pub get] I --> J[重新运行] ``` #### ⚠️ 四、注意事项 1. **模拟器性能优化**: - 启用 **VM acceleration**(Intel HAXM 或 Apple Hypervisor) - 分配至少 4GB RAM 给模拟器 - 使用 **x86_64** 系统镜像(非 ARM 版本) 2. **Flutter 版本兼容性**: ```bash flutter doctor # 检查环境状态 flutter upgrade # 升级到最新稳定版 ``` 3. **渲染引擎选择逻辑**: $$ \text{渲染引擎选择} = \begin{cases} \text{Hardware} & \text{if } \text{GPU}\geq\text{Vulkan 1.1} \\ \text{Software} & \text{otherwise} \end{cases} $$ --- ### 验证修复效果 ```bash # 完整清理重建 flutter clean rm -rf android/build # 带软件渲染运行 flutter run --enable-software-rendering --verbose ``` 观察输出中是否包含: ``` I/FlutterEngine( 1234): Using software rendering with Skia ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值