A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction See the Console for details.

WARNING:We recommend using a newer Android Gradle plugin to use compileSdk = 35

This Android Gradle plugin (7.1.2) was tested up to compileSdk = 32

This warning can be suppressed by adding
    android.suppressUnsupportedCompileSdk=35
to this project's gradle.properties

The build will continue, but you are strongly encouraged to update your project to
use a newer Android Gradle Plugin that has been tested with compileSdk = 35
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2022.3.14f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\34.0.0\package.xml. Probably the SDK is read-only
Exception while marshalling C:\Program Files\Unity\Hub\Editor\2022.3.14f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools\package.xml. Probably the SDK is read-only

解决方案:


2026.08.01更新最新方案


Unity 2022.3 打包 Android 失败:AAPT2 error failed to load resources table in android-35/android.jar (RES_TABLE_TYPE_TYPE entry offsets overlap)

【问题描述】
将 Android SDK/JDK/NDK 从旧电脑复制到新电脑后,Unity 打包 Android 报错。Gradle 构建失败,任务卡在 :launcher:processReleaseResources。

【环境信息】
- Unity 版本: 2022.3.34f1c1
- Android Gradle Plugin: 7.1.2
- compileSdk 目标: 35
- JDK: 11

【重现步骤】
直接通过 Unity 编辑器执行 Build,Gradle 执行 assembleRelease 任务。

【完整报错日志(已脱敏处理)】

Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

WARNING: We recommend using a newer Android Gradle plugin to use compileSdk = 35
This Android Gradle plugin (7.1.2) was tested up to compileSdk = 32
This warning can be suppressed by adding android.suppressUnsupportedCompileSdk=35 to gradle.properties

(中间编译任务执行省略,均为 UP-TO-DATE 或 NO-SOURCE,未报错)

> Task :launcher:processReleaseMainManifest
[com.android.support:animated-vector-drawable:28.0.0] ...\AndroidManifest.xml Warning:
    Package name 'android.support.graphics.drawable' used in: com.android.support:animated-vector-drawable:28.0.0, com.android.support:support-vector-drawable:28.0.0.

> Task :launcher:processReleaseResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:processReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
   > Android resource linking failed
     ERROR:AAPT: aapt2.exe E 08-01 10:17:40 14080 17964 LoadedArsc.cpp:94] RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data.
     aapt2.exe E 08-01 10:17:40 14080 17964 ApkAssets.cpp:149] Failed to load resources table in APK '[SDK_ROOT]\platforms\android-35\android.jar'.
     error: failed to load include path [SDK_ROOT]\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.

BUILD FAILED in 26s

UnityEditor.Android.Command.WaitForProgramToRun...
Rethrow as GradleInvokationException: Gradle build failed
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)        

解决方案(按推荐顺序)

建议:直接使用方案1即可,从别处断网安装的unity使用方案1是最方便的。

方案一:降低 compileSdk 版本(最快速)

将编译目标 API 等级降为 32(或 33),避免使用有问题的 android-35 平台。

  1. 在 Unity 编辑器中打开 Player Settings(菜单:Edit > Project Settings > Player)。

  2. 切换到 Android 平台标签,展开 Other Settings

  3. 找到 Target API Level,将其设为 Android 12 (API 32)(或更低稳定版本)。

  4. 重新构建项目。

如果您的项目明确需要 Android 14 特性,则继续采用方案二。

方案二:修复或重新安装 Android SDK Platform 35

步骤 1:删除损坏的平台文件
手动删除 C:\tool\20223.34_jdk_sdk_ndk\SDK\platforms\android-35\ 文件夹。

步骤 2:通过 SDK Manager 重新下载

  • 如果您独立安装了 Android Studio,打开 SDK Manager,找到 Android SDK Platform 35,取消勾选再重新勾选安装。

  • 如果仅使用 Unity 自带的 SDK,您可以:

    • 在 Unity 中打开 External ToolsEdit > Preferences > External Tools),确保 Android SDK 路径指向正确。

    • 使用 Unity 内置的 SDK Manager(菜单 Window > Android > SDK Manager)下载缺失的平台。

步骤 3:验证文件完整性
安装完成后,检查 android.jar 大小是否正常(通常几十 MB),并尝试在命令行中运行 aapt2 测试(可选)。

方案三:升级 Android Gradle Plugin(不推荐,风险较高)

警告提示当前插件(7.1.2)仅测试到 compileSdk 32,升级到更高版本(如 8.x)可解决兼容性,但 Unity 2022.3 对较新插件支持可能不稳定,可能导致其他问题。建议仅在前两种方案无效时考虑,并需手动修改导出的 Gradle 文件。

额外建议

  • 在项目根目录的 gradle.properties 中添加 android.suppressUnsupportedCompileSdk=35 可以消除警告,但不能修复资源链接错误

  • 日志中的 com.android.support 警告表示引用了旧版 Support Library,建议迁移到 AndroidX,但此警告不影响构建结果。

后续操作

完成上述任一方案后,请执行以下清理:

  • 删除项目中的 Library/Bee 缓存文件夹(或使用 Unity 菜单 Assets > Refresh 后再次构建)。

  • 在 Unity 中执行 Build > Clean Build(如果有该选项)或手动删除 Assets/../Temp 下的临时文件。

如果问题依然存在,请检查您的 Java 环境(JDK 11)是否正常,并确保环境变量 JAVA_HOME 指向 C:\tool\20223.34_jdk_sdk_ndk\jdk-11(日志已设置正确)。

建议优先尝试 方案一,因为调整 Target API Level 最为简便且安全,大多数情况下无需使用最新的 API 35。若需使用新 API,再执行方案二修复 SDK。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐