Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk = 35

Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk = 35

三个报错信息如下

第一个

bash 复制代码
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

第二个

bash 复制代码
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
ERROR:D:\A_Unity\2022.3.26f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-35\android.jar: D8: java.lang.NullPointerException

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:desugarReleaseFileDependencies'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.DexFileDependenciesTask$DexFileDependenciesWorkerAction
   > Error while dexing.

* 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 1s

第三个

bash 复制代码
stderr[
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
ERROR:D:\A_Unity\2022.3.26f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-35\android.jar: D8: java.lang.NullPointerException

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:desugarReleaseFileDependencies'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.DexFileDependenciesTask$DexFileDependenciesWorkerAction
   > Error while dexing.

* 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 1s
]
stdout[
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

错误原因:这个问题报错的原因是,我使用的 Unity2022.3.26,与之对应的 Android Gradle plugin 也就是 Gradle 版本是 7.1.2,这是Unity 官方给的对应关系

打包 APK 时配置Player Settings-> Android -> OthersSettings -> Identification -> Target API Level -> API Level 35

经测试 API Level 设置为 34/33/32 等低版本都是可以正常打包的

解决方案一

Unity 官方回答:这个问题影响Unity版本2021.3和2022.3 LTS。

目前,由于谷歌构建工具中AAPT2和SDK 35之间的兼容性错误,无法在Unity 2021.3和2022.3上构建SDK 35。我们已经向b谷歌报告了这个问题

我们正在Unity内提供修复,但与此同时,请遵循以下解决方案:

在 Unity 项目内 打开 gradleTemplate.properties ,这个文件 生成方式 Player Settings → Publish Settings → Check "Custom Gradle Properties Template" 在 Plugins/Android 文件夹下生成 gradleTemplate.properties 用文本编辑器打开,然后在最后添加一行 android.aapt2FromMavenOverride=<PATH_TO_YOUR_SDK>/build-tools/35.0.0/aapt2.exe

完整路径以Unity2022.3.26f1 为例安装路径 android.aapt2FromMavenOverride=2022.3.26f1/Editor\Data/PlaybackEngines/AndroidPlayer/SDK/build-tools/35.0.0/aapt2.exe

但是这个解决方案,我自己测试是无效的

解决方案二

错误原因中已经说了 API Level 设置低于 35 的都是可以正常打包的,那么如果不是必须要求设置 为 35 那么就降低版本,再打包

解决方案三

升级 Unity 版本,经过测试 Unity6 打包 APK 设置 API Level 35 打包正常

相关推荐
Jmyd01234 小时前
博物馆数字展厅系统架构设计:实景采集到云渲染全链路
unity·系统架构·博物馆·数字展厅·博物馆数字化
weixin_424294678 小时前
对于未加入 Script Execution Order 的脚本
unity
暴走约伯8 小时前
【VFX工具链源码拆解 03】告别机械劳动(下):材质字典映射批处理与智能纹理槽识别
unity·游戏引擎·材质
Wanda12148 小时前
机器人与机电一体化3D数字孪生机器-Day9
人工智能·3d·unity·机器人·数字孪生
暴走约伯9 小时前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎
平行云1 天前
建筑BIM/3D可视化轻量级实时评审与分享方案
unity·ue5·3dsmax·实时云渲染·云桌面·云游戏·建筑bim
2501_915106322 天前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
FFFFujige2 天前
【Unity】一个的Dots用Ruhanka踩坑记录
unity·游戏引擎
凯基迪科技3 天前
Unity游戏加密锁逆向方案、选型与攻防分析
游戏·unity·游戏引擎
阿松爱学习3 天前
【Unity开发】局部区域截图功能实现
unity·c#