TargetSdk 35构建时Android资源链接失败,无法加载android-35/android.jar求助
TargetSdk 35构建时Android资源链接失败,无法加载android-35/android.jar求助
看起来你在构建TargetSdk 35的Flutter项目时碰到了棘手的资源链接问题,核心错误是AAPT2无法加载android-35/android.jar,还提示资源表条目偏移重叠。结合你贴出的错误日志和配置文件,我整理了几个针对性的解决方案,你可以一步步尝试:
核心错误信息
首先把关键错误点提炼出来,方便定位问题:
Execution failed for task ':app:processReleaseResources'. A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction Android resource linking failed aapt2 E 07-05 10:17:00 12900 103793 LoadedArsc.cpp:94] RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data. aapt2 E 07-05 10:17:00 12900 103793 ApkAssets.cpp:152] Failed to load resources table in APK '/Users/mac/Library/Android/sdk/platforms/android-35/android.jar'. error: failed to load include path /Users/mac/Library/Android/sdk/platforms/android-35/android.jar.
解决方案1:重新下载损坏的Android 35平台文件
这个错误大概率是Android 35的平台文件损坏导致的,优先尝试这个方案:
- 打开Android Studio,点击顶部菜单栏的 Tools → SDK Manager
- 切换到SDK Platforms标签页,找到Android 14 (API 35)
- 取消勾选该选项,点击Apply删除已损坏的平台文件
- 等待删除完成后,重新勾选Android 14 (API 35)并点击Apply下载安装
- 安装完成后,执行
flutter clean清理项目缓存,再重新构建
解决方案2:对齐SDK版本与TargetSdkVersion
从你的flutter doctor输出看,你的Android SDK版本是36.0.0,但错误却指向API 35。可以尝试:
- 打开项目的
android/app/build.gradle文件 - 检查
compileSdkVersion和targetSdkVersion:- 如果当前设置为35,可以尝试改为36(确保API 36已安装)
- 或者确认API 35的平台文件已通过SDK Manager正确安装
- 保存修改后,执行
flutter clean再同步项目构建
解决方案3:修复Gradle/插件版本兼容性问题
你的配置中使用了Gradle 8.0、Android Gradle Plugin (AGP) 8.0.0,但Flutter版本是3.19.5(发布于2024年3月,距今已有一段时间),两者可能存在兼容性问题:
选项A:升级Flutter到最新稳定版
执行以下命令升级到最新稳定版,新版本通常修复了更多AGP兼容性问题:
flutter upgrade
选项B:调整AGP版本到兼容范围
在settings.gradle中,将com.android.application的版本从8.0.0改为7.4.2(Flutter 3.19推荐的AGP版本):
plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.4.2" apply false // 修改这里的版本号 id "com.google.gms.google-services" version "4.3.15" apply false }
修改后点击Sync Now同步项目,再尝试构建
解决方案4:清理所有缓存并重建
缓存文件损坏也可能导致这类奇怪的资源加载问题:
- 执行
flutter clean清理Flutter项目缓存 - 删除项目根目录下的
.gradle文件夹和android/.gradle文件夹 - 打开Android Studio,点击File → Invalidate Caches...,选择Invalidate and Restart
- 重启IDE后重新构建项目
你的配置参考(方便其他开发者排查)
settings.gradle
pluginManagement { def flutterSdkPath = { def properties = new Properties() file("local.properties").withInputStream { properties.load(it) } def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath } settings.ext.flutterSdkPath = flutterSdkPath() includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } plugins { id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false } } plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.0.0" apply false id "com.google.gms.google-services" version "4.3.15" apply false } include ":app"
flutter doctor -v
[✓] Flutter (Channel stable, 3.19.5, on macOS 15.4.1 24E263 darwin-x64, locale en-IN) • Flutter version 3.19.5 on channel stable at /Users/mac/Documents/flutter_sdk/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 300451adae (1 year, 3 months ago), 2024-03-27 21:54:07 -0500 • Engine revision e76c956498 • Dart version 3.3.3 • DevTools version 2.31.1 [✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0) • Android SDK at /Users/mac/Library/Android/sdk • Platform android-36, build-tools 36.0.0 • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105) • All Android licenses accepted.
内容来源于stack exchange
相关产品推荐
相关产品推荐

