Unity Hub安装Editor失败,出现“Install failed: Validation Failed”的一种解决方法

今天在另一台机子上装Unity Editor,又遇到了Validation Failed,但这次不是在下载阶段,而是安装阶段,搜索网络上现有解决方案:

① 管理员身份运行(【解决】Unity Hub 安装目标平台模块失败。警示“Install failed: Validation Failed”信息。-优快云博客亲测无效

② 修改powershell的path环境变量,让1.0优先于7(WORKAROUND: ⚠️Install failed: Validation Failed (Hub 3.8.x and earlier) - Unity Engine - Unity Discussions亲测无效

③ 设置下载位置路径为安装位置的子路径(【Unity学习日记(三)】安装编辑器出现validation failed错误-优快云博客亲测无效

④ stackOverflow上有人指出实在不行就手动安装,但后续添加组件很麻烦,不建议(Unity Hub "Install failed: Validation failed" message whenever I try to install Unity Editor - Stack Overflow

于是只能回归本质,检查了log:

发现执行的安装命令是一串乱码,这就很奇怪了,log的编码已经是UTF-8,是不是powershell本身的默认编码方式(代码页,Code Page)与Hub执行所使用的命令数据编码不兼容,从而导致执行失败的呢?

powershell输入 chcp 检查当前Code Page:

PS C:\Users\ZzDaniel> chcp
活动代码页: 936

可以看到默认是936(GBK),永久修改powershell的代码页为65001(UTF-8)可以用两种方法,如果第一种无效,可以试试第二种:

方法一:改注册表

找到“Computer\HKEY_CURRENT_USER\Console”,在其中的cmd.exe、powershell.exe下找到CodePage,改为65001,如果没有这个键,就新建一个同名的 DWORD(32位值),输入十进制的65001或十六进制的fde9。重启powershell输入chcp检查是否生效。

(引自:windows 控制台 cmd/PowerShell 中文显示乱码,解决方法_powershell 中文乱码-优快云博客

方法二:设置中修改全局字符集

如果上一种方法无效,chcp返回还是936,则可以试试这个终极方法。打开设置 -> 时间和语言 -> 语言 -> 管理语言设置 -> 更改系统区域设置 -> Beta版:使用 Unicode UTF-8 提供全球语言支持。确定后,提示重启计算机,会配置一段时间,重启后即改为UTF-8。

改好代码页后,再次启动Unity Hub执行安装,终于成功

总结:导致问题的跟本原因是指令执行异常,和“验证”毫无关系,考虑到Unity Hub是国际版(3.8.0),安装的编辑器也是国际版不带c1的版本,可能Hub内的安装指令就没有考虑在GBK上是否能正常执行,出现问题也算情有可原。这也可以解释为什么有的人会遇到,有的人遇不到(Unity Hub版本不同),就连大洋彼岸的官方也没搞清楚到底咋回事儿。总之,该问题暂时解决,希望能帮到遭遇相同问题,而其他解决方法都无效的各位。

当在Unity Hub 3.9.1版本安装Unity 2020.3.14f1时出现 'Editor application Download failed: Validation Failed' 和 'Windows Build Support (IL2CPP) Download failed: Validation Failed' 错误,可尝试以下解决办法: ### 网络方面 - **切换网络环境**:不稳定的网络可能导致下载文件损坏,从而引发验证失败。可以尝试从Wi-Fi切换到移动数据,或者反之,也可以尝试连接其他网络进行下载。 - **检查网络限速**:部分网络环境可能会对下载速度进行限制。查看网络设置或者联系网络管理员,确保网络没有限速,以保证下载的完整性。 ### 磁盘方面 - **清理磁盘空间**:磁盘空间不足可能影响文件的正常下载和写入。使用磁盘清理工具,清理系统临时文件、回收站等,确保磁盘有足够的空间用于下载和安装Unity。可以通过以下步骤在Windows系统中清理磁盘空间:打开“此电脑”,右键点击系统盘(通常为C盘),选择“属性”,在弹出的窗口中点击“磁盘清理”,勾选需要清理的文件类型,然后点击“确定”。 - **检查磁盘错误**:磁盘存在错误可能导致文件写入不完整。可以使用Windows自带的磁盘检查工具来检查和修复磁盘错误。具体操作如下:打开“此电脑”,右键点击系统盘(通常为C盘),选择“属性”,在弹出的窗口中切换到“工具”选项卡,点击“查错”区域的“检查”按钮,系统会自动检查并修复磁盘错误。 ### Unity Hub方面 - **更新Unity Hub**:旧版本的Unity Hub可能存在一些兼容性问题,导致下载验证失败。可以前往Unity官方网站下载最新版本的Unity Hub,然后安装更新。 - **清除Unity Hub缓存**:缓存文件可能损坏,影响下载验证。可以通过以下步骤清除Unity Hub缓存:关闭Unity Hub,然后找到Unity Hub的缓存文件夹(通常位于`C:\Users\你的用户名\AppData\Local\UnityHub\Cache`),删除该文件夹下的所有文件,最后重新打开Unity Hub进行下载安装。 ### 重新下载安装 - **删除未完成的下载文件**:未完成的下载文件可能损坏,导致验证失败。可以在Unity Hub中取消下载,然后删除安装目录下未完成的文件,再重新开始下载安装。 - **手动下载安装包**:可以前往Unity官方下载页面,手动下载Unity 2020.3.14f1和Windows Build Support (IL2CPP)的安装包,然后通过Unity Hub的“安装”选项,选择手动下载的安装包进行安装。 ### 防火墙和安全软件方面 - **临时关闭防火墙和安全软件**:防火墙和安全软件可能会阻止Unity Hub的下载过程,导致验证失败。可以临时关闭防火墙和安全软件,然后重新进行下载安装。下载安装完成后,再重新开启防火墙和安全软件。 ```python # 以下为伪代码示例,用于说明清理磁盘空间和清除Unity Hub缓存的操作思路 # 清理磁盘空间 import subprocess # 打开磁盘清理工具 subprocess.call('cleanmgr.exe') # 清除Unity Hub缓存 import shutil import os # 定义Unity Hub缓存文件夹路径 cache_folder = r'C:\Users\你的用户名\AppData\Local\UnityHub\Cache' # 检查缓存文件夹是否存在 if os.path.exists(cache_folder): # 删除缓存文件夹下的所有文件 shutil.rmtree(cache_folder) print("Unity Hub缓存已清除") else: print("未找到Unity Hub缓存文件夹") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值