0
点赞
收藏
分享

微信扫一扫

Flutter开发Gradle task assembleDebug failed with exit code 报错处理

在这里插入图片描述

问题描述

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':app:processDebugResources'.

A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction Android resource linking failed aapt2.exe E 04-11 13:44:20 25968 17680 LoadedArsc.cpp:94] RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data. aapt2.exe E 04-11 13:44:20 25968 17680 ApkAssets.cpp:149] Failed to load resources table in APK 'D:\Android\Sdk\platforms\android-35\android.jar'. error: failed to load include path D:\Android\Sdk\platforms\android-35\android.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 14s

┌─ Flutter Fix ────────────────────────────────────────────────────────────────────────────────────┐ │ [!] Using compileSdk 35 requires Android Gradle Plugin (AGP) 8.1.0 or higher. │ │ Please upgrade to a newer AGP version. The version of AGP that your project uses is likely │ │ defined in: │ │ D:\WORK\workingSource\fangfangtong66\android\settings.gradle, │ │ in the 'plugins' closure (by the number following "com.android.application"). │ │ Alternatively, if your project was created with an older version of the templates, it is likely │ │ in the buildscript.dependencies closure of the top-level build.gradle: │ │ D:\WORK\workingSource\fangfangtong66\android\build.gradle, │ │ as the number following "com.android.tools.build:gradle:". │ │ │ │ Finally, if you have a strong reason to avoid upgrading AGP, you can temporarily lower the │ │ compileSdk version in the following file: │ │ D:\WORK\workingSource\fangfangtong66\android\app\build.gradle │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘ Error: Gradle task assembleDebug failed with exit code 1

问题分析

根据错误信息和提示,问题的核心是 compileSdkVersion 35 需要 Android Gradle Plugin (AGP) 版本为 8.1.0 或更高,而当前项目使用的 AGP 版本较低,导致 aapt2 无法正确处理资源文件。以下是详细的解决步骤:

1. 检查并升级 Android Gradle Plugin (AGP)

问题原因:

  • 当前项目使用了 compileSdkVersion 35,但 AGP 版本低于 8.1.0,导致不兼容。

解决步骤:

  1. 修改 android/build.gradle 文件

    • 打开 D:\WORK\workingSource\fangfangtong66\android\build.gradle
    • classpath 更新到最新版本(如 8.1.0 或更高):
      buildscript {
      dependencies {
      classpath 'com.android.tools.build:gradle:8.1.0' // 确保版本 >= 8.1.0
      }
      }
  2. 更新 Gradle Wrapper 版本

    • 打开 android/gradle/wrapper/gradle-wrapper.properties 文件,确保使用支持 AGP 8.1.0 的 Gradle 版本:
      distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
  3. 清理并重新构建项目

    • 运行以下命令:
      flutter clean
      flutter pub get
      flutter build apk

2. 回退 compileSdkVersiontargetSdkVersion

如果暂时无法升级 AGP,可以选择回退 compileSdkVersiontargetSdkVersion 到较低版本(如 33)。

解决步骤:

  1. 修改 android/app/build.gradle 文件

    • 打开 D:\WORK\workingSource\fangfangtong66\android\app\build.gradle
    • 修改以下内容:
      android {
      compileSdkVersion 33 // 回退到较低版本
      defaultConfig {
      targetSdkVersion 33 // 同样回退到较低版本
      }
      }
  2. 清理并重新构建项目

    • 运行以下命令:
      flutter clean
      flutter pub get
      flutter build apk

3. 检查 Flutter 和 Android SDK 配置

操作步骤:

  1. **运行 flutter doctor**:

    • 确保所有依赖项都已正确安装,尤其是 Android 工具链。
    • 如果有未解决的警告或错误,请按照提示修复。
  2. 检查 Android SDK Build Tools

    • 在 Android Studio 的 SDK Manager 中,确保安装了对应版本的 Build Tools(如 33.0.2 或 35.0.0)。

4. 替换 aapt2 工具

如果问题仍未解决,可能是 aapt2 工具本身存在问题。

解决步骤:

  1. **下载最新版本的 aapt2**:

    • 下载地址:Android SDK Build Tools。
    • 替换路径:D:\Android\Sdk\build-tools\<version>\aapt2.exe
  2. 验证 aapt2 是否正常工作

    • 运行以下命令测试:
      aapt2 version

5. 使用 --stacktrace--info 获取更多信息

操作步骤:

  1. 运行以下命令以获取更详细的错误日志:
    flutter build apk --stacktrace --info
  2. 根据日志中的具体错误定位问题。

总结

通过上述步骤逐一排查,问题应能得到解决。以下是优先级建议:

  1. 首选升级 AGP 和 Gradle(步骤 1),这是最推荐的解决方案。
  2. 次选回退 compileSdkVersiontargetSdkVersion(步骤 2),适用于无法升级的情况。
  3. 最后尝试替换工具链或清理缓存(步骤 3 和 4)。

如果问题仍然存在,请提供以下信息以便进一步分析:

  1. flutter doctor 的输出结果。
  2. android/build.gradleandroid/app/build.gradle 的完整内容。
  3. 使用 --stacktrace--info 获取的详细错误日志。

结束语 Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

举报

相关推荐

0 条评论