Unity安卓打包报错"UnityEditor.BuildPlayerWindow+BuildMethodException"解决记录

一.报错内容:

(有时是49个错误,又是是19个,下面是每次最后的一个报错)

UnityEditor.BuildPlayerWindow+BuildMethodException: 19 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer(UnityEditor.BuildPlayerOptions options) [0x00242] in

D:\unity\Editor\Mono\BuildPlayerWindowBuildMethods.cs:190

  at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x0007f] in D:\unity\Editor\Mono\BuildPlayerWindowBuildMethods.cs:95

UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

(还有一个不同于其他报错的报错信息,Gradle是Unity打包相关的工具)

CommandInvokationFailure: Gradle build failed. 

 

二.解决办法

以下4种方法都是通过查询资料看到的办法:

(该四种办法虽然都没有成功解决我的问题,但是如果不遵循这些设置也可能出现类似的BuildPlayerWindow+BuildMethodException的报错,其中errors的数量可能不同):

方法一: File-BuildSettins-PlayerSetting-Player-OtherSettings-AndroidTVCompatibility取消勾选(个人试了不管用)

方法二:发布的路径不能包括中文,路径不能在项目里,换别的路径试试,发布目录放在与项目同一级目录下(个人试了也都不管用)

方法三:File-BuildSettins-PlayerSetting-API Compatibility Level选择Net 2.0(个人试了也不管用)

方法四:从项目的“Assets”文件夹中删除“plugins”文件夹,工具遗留问题,我在项目里放了plugins/VSCode.cs(个人试了也不管用)

个人成功的办法:

方法五:File-BuildSettins-PlayerSetting-Player-ProductName的名字与File-BuildSettins-Build后的apk名字一致(我的问题出在这,我尝试改了以下我的就能正常发出包了)

 

三.我参考的UNITY安卓打包配置教程传动门:https://blog.csdn.net/ChinarCSDN/article/details/79513403

里面还有该大神出的报错解决方法的传送门,但是我试了下我的报错不是这个原因,所以没有成功解决.

其中我用的软件版本都不太一样,因为时隔时间较长,所以我用的jdk-Java SE 8u231版本,sdk-3.5.2版本.

 

 

 

[14:47:55] Shader warning in 'GenSdfRayMap': Buffer count exceeding default GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS. Shader might not work on all hw. Consider combining separate buffers into one containing struct elements. at kernel ClearTex [14:47:55] Shader warning in 'GenSdfRayMap': Buffer count exceeding default GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS. Shader might not work on all hw. Consider combining separate buffers into one containing struct elements. at kernel Conserva [14:47:55] Shader warning in 'GenSdfRayMap': Buffer count exceeding default GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS. Shader might not work on all hw. Consider combining separate buffers into one containing struct elements. at kernel Distance [14:54:51]OVRGradleGeneration triggered. UnityEngine.Debug:Log (object) [14:54:51] QuestFamily = True: Quest=False, Quest2=True UnityEngine.Debug:LogFormat (string,object[])[15:04:49 FAILURE: Build failed with an exception. [15:05:50]CommandInvokationFailure: Gradle build failed. D:\unity\2021.3.44f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe-classpath "D:\unity\2021.3.44f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-7.5.1.jar" org.gradle.launcher.GradleMain "-Dorg[15:05:54] Couldn't create a Convex Mesh from source mesh "Reservoir01" within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) [15:05:56] Build completed with a result of 'Failed' in 7022 seconds (7021950 ms) UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) [15:05:56] UnityEditor.BuildPlayerWindow+BuildMethodException: 4 errors at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x002da] in <1518627dacca44efa32edd45bc720c48>:0
最新发布
03-24
从您提供的日志来看,这里有几个关键问题需要注意和排查。下面是对这些问题逐一分析及其可能的解决办法: ### 1. 关于Shader警告 `Buffer count exceeding default GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS` 这是显卡驱动对计算着色器所绑定缓冲区数量的一种限制提醒。当使用的SSBO(Shader Storage Buffer Object)过多时就会触发该消息,表明此着色器可能无法兼容某些低端设备。 #### 解决方案: - 合并分散的小型缓存到单一大型结构体内,减少独立绑定点的数量。 - 简化算法逻辑降低所需的存储块数目。 示例代码片段: ```hlsl struct SDFData { float4 dataA; float4 dataB; }; RWStructuredBuffer<SDFData> combinedBuffer : register(u1); ``` --- ### 2. OVRGradleGeneration 触发 & Gradle 构建失败 `[15:05:50] CommandInvokationFailure: Gradle build failed.` 这通常发生在针对安卓平台生成APK的过程中出现问题,可能是由多种因素造成,包括但不限于Java环境变量配置错误、缺少必要的工具链文件或是项目设置不当所致。 #### 排查步骤: 1. 验证系统是否已经正确设置了JAVA_HOME指向Unity自带或自行安装好的JDK位置; 2. 打开`Preferences > External Tools`查看NDK/Sdk路径是否准确无误; 3. 清理残留临时数据(`Edit>Clean Up`)然后再次发起编译流程; 4. 更新至最新版本官方推荐的Android Studio SDK组件; 对于更详细的解答参考文档可以查阅 [Unity 官方手册 - Android](https://docs.unity3d.com/Manual/android-sdksetup.html) --- ### 3. 凸包网格创建失败提示 `"Couldn't create a Convex Mesh from source mesh"` 表示试图将复杂模型转换成凸形碰撞体的时候超出了最大面数限额(此处为256),因此只能采用部分结果代替完整形状。这种状况常见于物理模拟环节,比如角色控制器周围包围盒设定阶段。 #### 应对方针: - 尝试手动优化源物体顶点分布使其更容易满足约束条件; - 或者直接选用凹陷类型替代简单近似处理方式; - 若以上均不可行,则考虑扩大上限值允许更高精度再现轮廓特征但需权衡性能代价。 --- 综上所述,请结合自身实际操作场景逐条核实上述各要点内容实施对应调整措施直至恢复正常为止!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值