Eula check causes exception when running in `-nographics` mode.

Issue #695 resolved
John Austin created an issue

This issue seems fairly straightforward, but feel free to close it if you like (it’s reproduceable on a basic project).

We just upgraded to Odin Inspector 3.0 beta. We run a nightly build on Linux, using the Unity CLI, using the -nographics mode. The new EULA check step throws an exception because it’s unable to find the window.

It causes build failures on Unity CI runners (which as of 2020.1 must use -nographics on Linux). So it’s fairly annoying to work-around, even though it’s not a huge bug.

Here’s the stack trace. Odin complains about missing graphics, and then finally throws an exception:

2020-09-09T23:48:06.9784858Z No graphic device is available to initialize the view.
2020-09-09T23:48:06.9785170Z UnityEditor.GUIView:Internal_Init(Int32, Int32)
2020-09-09T23:48:06.9785562Z UnityEditor.GUIView:SetWindow(ContainerWindow) (at /home/bokken/buildslave/unity/build/Editor/Mono/GUIView.cs:52)
2020-09-09T23:48:06.9786078Z UnityEditor.HostView:SetWindow(ContainerWindow) (at /home/bokken/buildslave/unity/build/Editor/Mono/HostView.cs:146)
2020-09-09T23:48:06.9786595Z UnityEditor.View:SetWindowRecurse(ContainerWindow) (at /home/bokken/buildslave/unity/build/Editor/Mono/View.cs:233)
2020-09-09T23:48:06.9787257Z UnityEditor.View:AddChild(View, Int32) (at /home/bokken/buildslave/unity/build/Editor/Mono/View.cs:203)
2020-09-09T23:48:06.9787767Z UnityEditor.SplitView:AddChild(View, Int32) (at /home/bokken/buildslave/unity/build/Editor/Mono/GUI/SplitView.cs:185)
2020-09-09T23:48:06.9788244Z UnityEditor.View:AddChild(View) (at /home/bokken/buildslave/unity/build/Editor/Mono/View.cs:191)
2020-09-09T23:48:06.9788809Z UnityEditor.EditorWindow:CreateNewWindowForEditorWindow(EditorWindow, Boolean, Boolean, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:1113)
2020-09-09T23:48:06.9789410Z UnityEditor.EditorWindow:Show(Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:609)
2020-09-09T23:48:06.9789917Z UnityEditor.EditorWindow:Show() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:601)
2020-09-09T23:48:06.9790455Z UnityEditor.EditorWindow:GetWindowPrivate(Type, Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:645)
2020-09-09T23:48:06.9791061Z UnityEditor.EditorWindow:GetWindow(Type, Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:659)
2020-09-09T23:48:06.9791645Z UnityEditor.EditorWindow:GetWindow(Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:725)
2020-09-09T23:48:06.9792223Z UnityEditor.EditorWindow:GetWindow() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:699)
2020-09-09T23:48:06.9793651Z Sirenix.OdinInspector.Editor.<>c:<OpenIfNotAccepted>b__5_0() (at X:\Repositories\sirenix-development\Sirenix Solution\Sirenix.OdinInspector.Editor\Windows\AcceptEula\AcceptEULAWindow.cs:27)
2020-09-09T23:48:06.9794378Z UnityEditor.EditorApplication:Internal_CallDelayFunctions() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:346)
2020-09-09T23:48:06.9794717Z 
2020-09-09T23:48:06.9794921Z [./Editor/Src/GUIView.bindings.cpp line 27] 
2020-09-09T23:48:06.9795281Z (Filename: /home/bokken/buildslave/unity/build/Editor/Mono/GUIView.cs Line: 52)
2020-09-09T23:48:06.9795531Z 
2020-09-09T23:48:06.9795743Z No graphic device is available to show the window.
2020-09-09T23:48:06.9796110Z UnityEditor.ContainerWindow:Internal_Show_Injected(Rect&, Int32, Vector2&, Vector2&)
2020-09-09T23:48:06.9796517Z UnityEditor.ContainerWindow:Internal_Show(Rect, Int32, Vector2, Vector2)
2020-09-09T23:48:06.9797065Z UnityEditor.ContainerWindow:Show(ShowMode, Boolean, Boolean, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/ContainerWindow.cs:147)
2020-09-09T23:48:06.9797724Z UnityEditor.EditorWindow:CreateNewWindowForEditorWindow(EditorWindow, Boolean, Boolean, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:1118)
2020-09-09T23:48:06.9798316Z UnityEditor.EditorWindow:Show(Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:609)
2020-09-09T23:48:06.9798818Z UnityEditor.EditorWindow:Show() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:601)
2020-09-09T23:48:06.9799467Z UnityEditor.EditorWindow:GetWindowPrivate(Type, Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:645)
2020-09-09T23:48:06.9800074Z UnityEditor.EditorWindow:GetWindow(Type, Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:659)
2020-09-09T23:48:06.9800658Z UnityEditor.EditorWindow:GetWindow(Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:725)
2020-09-09T23:48:06.9801205Z UnityEditor.EditorWindow:GetWindow() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:699)
2020-09-09T23:48:07.5726390Z Sirenix.OdinInspector.Editor.<>c:<OpenIfNotAccepted>b__5_0() (at X:\Repositories\sirenix-development\Sirenix Solution\Sirenix.OdinInspector.Editor\Windows\AcceptEula\AcceptEULAWindow.cs:27)
2020-09-09T23:48:07.5727378Z UnityEditor.EditorApplication:Internal_CallDelayFunctions() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:346)
2020-09-09T23:48:07.5727863Z 
2020-09-09T23:48:07.5728198Z [./Editor/Src/ContainerWindow.bindings.cpp line 78] 
2020-09-09T23:48:07.5728830Z (Filename: /home/bokken/buildslave/unity/build/Editor/Mono/ContainerWindow.cs Line: 147)
2020-09-09T23:48:07.5729578Z 
2020-09-09T23:48:07.5729866Z No graphic device is available to initialize the view.
2020-09-09T23:48:07.5730181Z UnityEditor.GUIView:Internal_Init(Int32, Int32)
2020-09-09T23:48:07.5730605Z UnityEditor.GUIView:SetWindow(ContainerWindow) (at /home/bokken/buildslave/unity/build/Editor/Mono/GUIView.cs:52)
2020-09-09T23:48:07.5731170Z UnityEditor.HostView:SetWindow(ContainerWindow) (at /home/bokken/buildslave/unity/build/Editor/Mono/HostView.cs:146)
2020-09-09T23:48:07.5731686Z UnityEditor.View:SetWindowRecurse(ContainerWindow) (at /home/bokken/buildslave/unity/build/Editor/Mono/View.cs:233)
2020-09-09T23:48:07.5732190Z UnityEditor.View:SetWindowRecurse(ContainerWindow) (at /home/bokken/buildslave/unity/build/Editor/Mono/View.cs:236)
2020-09-09T23:48:07.5732752Z UnityEditor.ContainerWindow:Show(ShowMode, Boolean, Boolean, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/ContainerWindow.cs:151)
2020-09-09T23:48:07.5733376Z UnityEditor.EditorWindow:CreateNewWindowForEditorWindow(EditorWindow, Boolean, Boolean, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:1118)
2020-09-09T23:48:07.5733972Z UnityEditor.EditorWindow:Show(Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:609)
2020-09-09T23:48:07.5735246Z UnityEditor.EditorWindow:Show() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:601)
2020-09-09T23:48:07.5735795Z UnityEditor.EditorWindow:GetWindowPrivate(Type, Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:645)
2020-09-09T23:48:07.5736394Z UnityEditor.EditorWindow:GetWindow(Type, Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:659)
2020-09-09T23:48:07.5736968Z UnityEditor.EditorWindow:GetWindow(Boolean, String, Boolean) (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:725)
2020-09-09T23:48:07.5737508Z UnityEditor.EditorWindow:GetWindow() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorWindow.cs:699)
2020-09-09T23:48:07.5738739Z Sirenix.OdinInspector.Editor.<>c:<OpenIfNotAccepted>b__5_0() (at X:\Repositories\sirenix-development\Sirenix Solution\Sirenix.OdinInspector.Editor\Windows\AcceptEula\AcceptEULAWindow.cs:27)
2020-09-09T23:48:07.5739535Z UnityEditor.EditorApplication:Internal_CallDelayFunctions() (at /home/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:346)
2020-09-09T23:48:07.5739908Z 
2020-09-09T23:48:07.5740132Z [./Editor/Src/GUIView.bindings.cpp line 27] 
2020-09-09T23:48:07.5740482Z (Filename: /home/bokken/buildslave/unity/build/Editor/Mono/GUIView.cs Line: 52)
2020-09-09T23:48:07.5740713Z 
2020-09-09T23:48:07.5775049Z ##[error]NullReferenceException: Object reference not set to an instance of an object
2020-09-09T23:48:07.5786252Z NullReferenceException: Object reference not set to an instance of an object
2020-09-09T23:48:07.5787309Z   at (wrapper dynamic-method) System.Object.UnityEditor.Toolbar_getter<get.parent.screenPosition>()
2020-09-09T23:48:07.5787926Z   at (wrapper delegate-invoke) System.Func`1[UnityEngine.Rect].invoke_TResult()
2020-09-09T23:48:07.5788776Z   at Sirenix.Utilities.Editor.GUIHelper.GetEditorWindowRect () [0x00000] in X:\Repositories\sirenix-development\Sirenix Solution\Sirenix.Utilities.Editor\GUI\GUIHelper.cs:219 
2020-09-09T23:48:07.5790098Z   at Sirenix.OdinInspector.Editor.AcceptEULAWindow+<>c.<OpenIfNotAccepted>b__5_0 () [0x00046] in X:\Repositories\sirenix-development\Sirenix Solution\Sirenix.OdinInspector.Editor\Windows\AcceptEula\AcceptEULAWindow.cs:39 
2020-09-09T23:48:07.5790911Z   at (wrapper delegate-invoke) <Module>.invoke_void()
2020-09-09T23:48:07.5791377Z   at UnityEditor.EditorApplication.Internal_CallDelayFunctions () [0x0000d] in /home/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:346 
2020-09-09T23:48:07.5791750Z  
2020-09-09T23:48:07.5791947Z (Filename: X Line: 0)

Comments (4)

  1. Tor Esa Vestergaard
    • changed status to open

    Thanks for the report - I have a potential fix for this; would you be amenable to testing it to verify that the issue is no longer present? You can contact me on our support Discord and I'll send you a build right away.

  2. Dan Vicarel

    @Tor Esa Vestergaard In which version of Odin was this issue resolved? I am getting a Cloud Build error with a similar stack trace in Odin 3.0.1.0 on Unity 2020.1.8f1:

    12519: [Unity] (Filename: X Line: 0)
    12520: [Unity] NullReferenceException: Object reference not set to an instance of an object
    12521: [Unity]   at (wrapper dynamic-method) System.Object.UnityEditor.Toolbar_getter<get.parent.screenPosition>()
    12522: [Unity]   at (wrapper delegate-invoke) System.Func`1[UnityEngine.Rect].invoke_TResult()
    12523: [Unity]   at Sirenix.Utilities.Editor.GUIHelper.GetEditorWindowRect () [0x00000] in X:\Repositories\sirenix-development\Sirenix Solution\Sirenix.Utilities.Editor\GUI\GUIHelper.cs:219 
    12524: [Unity]   at Sirenix.OdinInspector.Editor.AcceptEULAWindow.OnUpdate () [0x00075] in X:\Repositories\sirenix-development\Sirenix Solution\Sirenix.OdinInspector.Editor\Windows\AcceptEula\AcceptEULAWindow.cs:51 
    12525: [Unity]   at (wrapper delegate-invoke) <Module>.invoke_void()
    12526: [Unity]   at UnityEditor.EditorApplication.Internal_CallUpdateFunctions () [0x00076] in /Users/bokken/buildslave/unity/build/Editor/Mono/EditorApplication.cs:332
    

  3. Log in to comment