【问题标题】:Unity compile assemblies fails after updateUnity 编译程序集在更新后失败
【发布时间】:2022-01-25 11:23:52
【问题描述】:

这个项目可以在编辑器中播放,
并且在版本更新之前构建 xcode 是成功的。

我尝试了很多方法,但总是得到类似的异常
像“错误解析编辑器程序集的类型”,
"System.ArgumentOutOfRangeException","SBP 错误错误"...等

然后检查编辑器日志,发现消息总是以 “Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.1/Editor/Tasks/BuildPlayerScripts.cs:41”,这里使用了一种叫做“PlayerBuildInterface.CompilePlayerScripts”的方法, 所以我猜可能是它的编译错误,但不知道如何修复。

尝试将错误项目的 manifest.json 复制到空项目。它可以建立成功。 但在错误项目中尝试删除/升级/降级 SBP 或 Unity 版本,总是失败。


这里是编辑器日志的信息: 原始版本 = 2019.4.14
更新版本 = 2020.3.20

解析编辑器程序集类型时出错。 UnityEngine.StackTraceUtility:ExtractStackTrace () (在 /Users/bokken/buildslave/unity/build/Runtime/Export/Scripting/StackTrace.cs:37) UnityEditor.Build.Player.PlayerBuildInterface:CompilePlayerScriptsNative (UnityEditor.Build.Player.ScriptCompilationSettings,string,bool) UnityEditor.Build.Player.PlayerBuildInterface:CompilePlayerScriptsInternal (UnityEditor.Build.Player.ScriptCompilationSettings,string,bool) (在 /Users/bokken/buildslave/unity/build/Modules/BuildPipeline/Editor/Managed/PlayerBuildInterface.bindings.cs:88 ) UnityEditor.Build.Player.PlayerBuildInterface:CompilePlayerScripts (UnityEditor.Build.Player.ScriptCompilationSettings,string) (在/Users/bokken/buildslave/unity/build/Modules/BuildPipeline/Editor/Managed/PlayerBuildInterface.bindings.cs:82) UnityEditor.Build.Pipeline.Tasks.BuildPlayerScripts:Run () (在 Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.1/Editor/Tasks/BuildPlayerScripts.cs:41) UnityEditor.Build.Pipeline.BuildTasksRunner:Run (System.Collections.Generic.IList1<UnityEditor.Build.Pipeline.Interfaces.IBuildTask>,UnityEditor.Build.Pipeline.Interfaces.IBuildContext) (at Library/PackageCache/com.unity.scriptablebuildpipeline@1.19.1/Editor/Shared/BuildTasksRunner.cs:56) UnityEditor.Build.Pipeline.ContentPipeline:BuildAssetBundles (UnityEditor.Build.Pipeline.Interfaces.IBundleBuildParameters,UnityEditor.Build.Pipeline.Interfaces.IBundleBuildContent,UnityEditor.Build.Pipeline.Interfaces.IBundleBuildResults&,System.Collections.Generic.IList1,UnityEditor.Build.Pipeline.Interfaces.IContextObject[]) (在 Library/PackageCache /com.unity.scriptablebuildpipeline@1.19.1/Editor/ContentPipeline.cs:145) UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode:DoBuild (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput,UnityEditor.AddressableAssets.Build.DataBuilders.AddressableAssetsBuildContext) (在 Library/PackageCache/com.unity.addressables @1.18.15/Editor/Build/DataBuilders/BuildScriptPackedMode.cs:236) UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptPackedMode:BuildDataImplementation (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput) (在 Library/PackageCache/com.unity.addressables@1.18.15/Editor/Build/DataBuilders /BuildScriptPackedMode.cs:77) UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptBase:BuildData (UnityEditor.AddressableAssets.Build.AddressablesDataBuilderInput) (在 Library/PackageCache/com.unity.addressables@1.18.15/Editor/Build/DataBuilders /BuildScriptBase.cs:91) UnityEditor.AddressableAssets.Settings.AddressableAssetSettings:BuildPlayerContentImpl () (在 Library/PackageCache/com.unity.addressables@1.18.15/Editor/Settings/AddressableAssetSettings.cs:2148) UnityEditor.AddressableAssets.Settings.AddressableAssetSettings:BuildPlayerContent (UnityEditor.AddressableAssets.Build.AddressablesPlayerBuildResult&) (在 Library/PackageCache/com.unity.addressables@1.18.15/Editor/Settings/AddressableAssetSettings.cs:2130) UnityEditor.AddressableAssets.Settings.AddressableAssetSettings:BuildPlayerContent ()(在 Library/PackageCache/com.unity.addressables@1.18.15/Editor/Settings/AddressableAssetSettings.cs:2097) UnityEditor.AddressableAssets.GUI.AddressableAssetsSettingsGroupEditor:OnBuildPlayerData ()(在 Library/PackageCache/com.unity.addressables@1.18.15/Editor/GUI/AddressableAssetsSettingsGroupEditor.cs:340) UnityEditor.AddressableAssets.GUI.AddressableAssetsSettingsGroupEditor:OnBuildScript (object) (在 Library/PackageCache/com.unity.addressables@1.18.15/Editor/GUI/AddressableAssetsSettingsGroupEditor.cs:335) UnityEditor.GenericMenu:CatchMenu (object,string[],int) (在 /Users/bokken/buildslave/unity/build/Editor/Mono/GUI/GenericMenu.cs:125)

【问题讨论】:

  • 升级 Unity 版本后,您是否也更新了项目中的包?除此之外,我总是会杀死 Library 文件夹并让 Unity 在更改版本时重新创建它。 Here 我描述了如何从任何临时生成的东西中清理你的项目。我会在以新版本打开项目之前这样做
  • 几天前试图杀死图书馆,但没有奏效。仍然有同样的错误。谢谢。
  • 如果您不需要它,只需将其删除。
  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: c# unity3d


【解决方案1】:

通过大量的 delete-Try&Error 解决了这个问题。

发现插件文件夹中有一个“i18N.CJK.dll”导致此问题。
删除它时,UnityEditor,即使在 UnityBuild 或 XCodeBuild 中,也不会报告任何关于它的信息。直到需要编码的移动应用程序显示一些不支持的错误。

从外部删除或替换插件的 dll(从旧项目的插件文件夹中排除副本)将解决它。
我发现在 Windows2020 或 Mac2019 中,dll 已经安装在路径中 "Unity\Library\PlayerDataCache\Android\Data\Managed" ,但在 Mac2020 中,是空的。似乎统一自动创建的库在 Mac2020 中有一些错误?或者 dll 有版本更新但名称相同......猜猜。编辑器日志不起作用,WTF。

【讨论】:

    猜你喜欢
    • 2019-03-02
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多