You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Flutter编译失败:SDK35的android.jar损坏(27MB而非100MB)

解决Windows下Flutter构建因Android SDK 35 android.jar损坏导致的报错

问题描述

在Windows 10/11环境下构建依赖google_mobile_ads:3.1.0(强制依赖Android SDK 35)的Flutter应用时,持续触发以下构建报错:

aapt2.exe E LoadedArsc.cpp:94] RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data.
Failed to load resources table in APK android-35/android.jar.
error: failed to load include path android-35/android.jar.

多次通过SDK管理器、手动下载重装SDK 35后,android.jar大小始终为27MB,尝试替换其他版本jar、修改compileSdk版本等操作均无法解决问题。

可行解决方案

1. 手动替换完整的android.jar

官方platform-35_r02的android.jar正常大小确实约为27MB,大小本身无法直接判定损坏。你可以从其他能正常使用SDK 35的设备(Windows或macOS均可)复制完整的android-35/android.jar文件,替换本地%ANDROID_SDK_ROOT%\platforms\android-35\路径下的对应文件,替换后重试构建。

2. 临时绕过SDK 35强制依赖

若暂时无法修复SDK 35的安装问题,可通过Gradle依赖覆盖强制使用SDK 34:

  • 在项目根目录的android/build.gradle中添加:
    configurations.all {
        resolutionStrategy {
            // 覆盖依赖,避免SDK 35的强制引入
            force 'com.android.support:support-v4:28.0.0'
            force 'com.android.support:appcompat-v7:28.0.0'
        }
    }
    
  • 在android/app/build.gradle中修改版本配置:
    android {
        compileSdkVersion 34
        defaultConfig {
            targetSdkVersion 34
        }
    }
    

注意:此方案存在兼容性风险,仅作为临时过渡使用,后续优先修复SDK 35安装问题。

3. 使用离线SDK包手动安装

下载官方完整的Android SDK Platform 35离线包,完全删除本地旧的android-35文件夹后,将离线包解压到%ANDROID_SDK_ROOT%\platforms\目录下,确保文件完整覆盖。

4. 排查网络环境干扰

Windows的代理、防火墙可能在下载过程中截断SDK文件,导致android.jar不完整。尝试关闭代理、防火墙后重新下载SDK 35,或更换网络环境(如手机热点)进行下载。

补充验证方式

若不确定android.jar是否损坏,可尝试解压该文件:如果解压过程中出现报错,说明文件确实存在损坏;若能正常解压,可进一步检查内部资源文件的完整性。

内容的提问来源于stack exchange,提问作者Paulo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 13:14:55