当前位置: 首页 > news >正文

Unity3d 打包安卓平台(Android apk)报错Gradle build failed解决方法

问题

Unity3d 版本为2022.3.*版本,而且工程内部没有包含比较特殊的插件,安卓模块(module)也是随编辑一起安装,JDK、Android SDK Tools、Android NDK和Gradle都是默认安装。打包设置Project Settings也是默认设置,打包的工程不包含中文目录或者文件。然而打包却报错Gradle build failed。
详细报错如下:
在这里插入图片描述
在这里插入图片描述

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 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

ERROR:D:\Program Files\Unitys\2022.3.14f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platforms\android-35\android.jar: D8: java.lang.NullPointerException Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
CommandInvokationFailure: Gradle build failed. D:\Program Files\Unitys\2022.3.14f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe -classpath “D:\Program Files\Unitys\2022.3.14f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-7.2.jar” org.gradle.launcher.GradleMain “-Dorg.gradle.jvmargs=-Xmx4096m”
“assembleDebug” Build completed with a result of ‘Failed’ in 45 seconds (44996 ms) 3 errors UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

在网上搜索排查了多次,仍然未解决问题,特记录一下解决过程。

解决方法

清理项目

首先尝试了清理项目的方法,网上的方式是:

在 Unity 中,您可以尝试清理项目来解决 Gradle Build Failed 问题。在 Unity Editor 中,选择“File”->“Build Settings”->“Clean Project”,然后重新构建项目。这将清除构建缓存并重新生成项目文件,可能解决潜在的构建问题。

然而,我并没有找到对应的操作, 所以,手动删除了工程内的Library、Logs、Temp等文件夹,然后重新打开工程,重新打包,发现未解决该问题。

修改Gradle 镜像

这里考虑的是,使用国内的镜像源,比如阿里云或者腾讯云,以加快依赖库的下载速度,尤其是在国内访问Google的Maven仓库可能会很慢或者被屏蔽。
在 Build Settings 左下角打开 Player Settings,在 Android 平台图标选项卡下找到 Publishing Settings 选项的Build选项,勾选 Custom Gradle Settings Template。
在这里插入图片描述

工程内多出这么一个文件“Assets/Plugins/Android/settingsTemplate.gradle”。将settingsTemplate.gradle文件内容替换如下:

pluginManagement {repositories {**ARTIFACTORYREPOSITORY**maven {url 'https://mirrors.huaweicloud.com/repository/maven/'}//gradlePluginPortal()//google()//mavenCentral()}
}include ':launcher', ':unityLibrary'
**INCLUDES**dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)repositories {**ARTIFACTORYREPOSITORY**maven {url 'https://mirrors.huaweicloud.com/repository/maven/'}//google()//mavenCentral()flatDir {dirs "${project(':unityLibrary').projectDir}/libs"}}
}

也可以选用其他的备用源:

阿里云:http://maven.aliyun.com/
中央仓库:https://repo1.maven.org/maven2/
网易:http://maven.netease.com/repository/public/
华为云:https://repo.huaweicloud.com/repository/maven/
腾讯云:https://mirrors.cloud.tencent.com/repository/maven/
中国科技大学:http://mirrors.ustc.edu.cn/maven/maven2/
南京大学:http://maven.nju.edu.cn/repository/
清华大学:https://repo.maven.apache.org/maven2/
北京理工大学:http://mirror.bit.edu.cn/maven/
东软信息学院:https://mirrors.neusoft.edu.cn/maven2/
中国科学院开源协会:http://maven.opencas.cn/maven/
北京交通大学:http://maven.bjtu.edu.cn/maven2/

不过修改后,我这里还提示错误。

在这里插入图片描述

修改API Level

这里一直忽略了上面的警告提示:

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

也是就是:警告:我们建议使用更高版本的 Android Gradle 插件以适配 compileSdk = 35。当前使用的 Android Gradle 插件(7.1.2)最高仅支持到 compileSdk = 32。

也就是Android Gradle 插件最高支持32,而这里设置了35。按照这个提示,查看Project Settings > Player > Other Settings > Identification 的Target API Level其默认值为Automatic (highest installed)(自动按已安装的最高版本):
在这里插入图片描述

手动设置一个版本即可:
在这里插入图片描述

这里我的Gradle 版本其实是7.2:
在这里插入图片描述

所以设置为API level 33 也能正常打包:
在这里插入图片描述

以上为个人解决该问题的过程,可能前两步对此无帮助。

相关文章:

  • 2. 盒模型/布局模块 - 响应式产品展示页_案例:电商产品网格布局
  • JavaScript编译原理
  • 数据结构(七)——图
  • Kingston FURY全新推出高性能PCIe 5.0 NVMe固态硬盘
  • AI+可视化:数据呈现的未来形态
  • 微信小程序 自定义图片分享-绘制数据图片以及信息文字
  • 位运算【入门-->精通】
  • Github 2025-05-13 Python开源项目日报 Top10
  • 我喜欢的vscode几个插件和主题
  • Datawhale 5月llm-universe 第1次笔记
  • 武汉大学无人机视角下的多目标指代理解新基准!RefDrone:无人机场景指代表达理解数据集
  • SpringBoot的外部化配置
  • 无人机避障——如何利用MinumSnap进行对速度、加速度进行优化的轨迹生成(附C++python代码)
  • API的学习总结(上)
  • 设计模式系列(03):设计原则(二):DIP、ISP、LoD
  • 记录算法笔记(2025.5.13)二叉树的最大深度
  • 【Qt】pro工程文件转CMakeLists文件
  • .NET8关于ORM的一次思考
  • MapReduce 入门实战:WordCount 程序
  • 2025.05.11阿里云机考真题算法岗-第三题
  • 事关心脏健康安全,经导管植入式人工心脏瓣膜国家标准发布
  • 朝着解决问题的正确方向迈进——中美经贸高层会谈牵动世界目光
  • 寒武纪陈天石:公司的产品力获得了行业客户广泛认可,芯片市场有望迎来新增量需求
  • 从采购到销售!市场监管总局指导行业协会防控肉品风险
  • 新疆交通运输厅厅长西尔艾力·外力履新吐鲁番市市长候选人
  • 李公明 | 一周画记:印巴交火会否升级为第四次印巴战争?