PartialityModding / PartialityLauncher

The launcher for Partiality.
MIT License
27 stars 17 forks source link

System.ArgumentNullException when launching via PartialityLauncher.Desktop.app on macOS #4

Open kouwei32 opened 5 years ago

kouwei32 commented 5 years ago

Launching the .app directly will cause it to quit almost instantly.

Launching via shell returns:

Unhandled Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: path
  at System.IO.Path.Validate (System.String path, System.String parameterName) [0x0005f] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Path.cs:890
  at System.IO.Path.Validate (System.String path) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Path.cs:872
  at System.IO.Directory.GetParent (System.String path) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Directory.cs:289
  at PartialityLauncher.GameManager.SaveAllMetadata () [0x00000] in F:\Unity Modding Projects\PartialityLauncher\PartialityLauncher\PartialityLauncher\Mod Management\GameManager.cs:169
  at PartialityLauncher.Desktop.Program.Main (System.String[] args) [0x00092] in F:\Unity Modding Projects\PartialityLauncher\PartialityLauncher\PartialityLauncher.Desktop\Program.cs:33
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentNullException: Value cannot be null.
Parameter name: path
  at System.IO.Path.Validate (System.String path, System.String parameterName) [0x0005f] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Path.cs:890
  at System.IO.Path.Validate (System.String path) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Path.cs:872
  at System.IO.Directory.GetParent (System.String path) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/Directory.cs:289
  at PartialityLauncher.GameManager.SaveAllMetadata () [0x00000] in F:\Unity Modding Projects\PartialityLauncher\PartialityLauncher\PartialityLauncher\Mod Management\GameManager.cs:169
  at PartialityLauncher.Desktop.Program.Main (System.String[] args) [0x00092] in F:\Unity Modding Projects\PartialityLauncher\PartialityLauncher\PartialityLauncher.Desktop\Program.cs:33

Then the process terminates. This is the only output.

macOS Mojave 10.14.3

nphyx commented 5 years ago

Same problem in Linux (Arch) under Wine, with the same error message (other than my local paths being different). Dug in a bit, thought it might be related to deficiencies in winemono, so I tried native dotnet40 on a win32 winearch, which gave me a somewhat different trace:

000b:fixme:winediag:start_process Wine Staging 4.1 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
0014:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0014:fixme:process:SetProcessDEPPolicy (1): stub
0014:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0019:fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
0009:fixme:thread:SetThreadStackGuarantee (0x32fc54): stub
0009:fixme:thread:RtlCreateUserThread stack_commit != 0 is unimplemented
0031:err:ole:CoGetContextToken apartment not initialised
0009:fixme:shell:URL_ParseUrl failed to parse L"PartialityLauncher"
0009:fixme:shell:URL_ParseUrl failed to parse L"netstandard"
0009:fixme:shell:URL_ParseUrl failed to parse L"System.Core"
0009:fixme:shell:URL_ParseUrl failed to parse L"System"
0009:fixme:shell:URL_ParseUrl failed to parse L"Eto"
0009:fixme:shell:URL_ParseUrl failed to parse L"System.Runtime"
0009:fixme:shell:URL_ParseUrl failed to parse L"System.Threading"
0009:fixme:shell:URL_ParseUrl failed to parse L"System.Globalization"
0009:fixme:shell:URL_ParseUrl failed to parse L"System.Runtime.Extensions"
0009:fixme:nls:get_dummy_preferred_ui_language (0x0 0x32d01c (nil) 0x32d018) returning a dummy value (current locale)
0009:fixme:nls:get_dummy_preferred_ui_language (0x0 0x32d01c 0x1c45b8 0x32d018) returning a dummy value (current locale)
0009:fixme:shell:URL_ParseUrl failed to parse L"Windows"
0009:fixme:shell:URL_ParseUrl failed to parse L"Eto.Wpf"
0009:fixme:shell:URL_ParseUrl failed to parse L"System.Collections"
0009:fixme:shell:URL_ParseUrl failed to parse L"System.Core"
0009:fixme:shell:URL_ParseUrl failed to parse L"System.Reflection"
0009:fixme:shell:URL_ParseUrl failed to parse L"Microsoft.WindowsAPICodePack.Shell"
0009:fixme:shell:URL_ParseUrl failed to parse L"Microsoft.WindowsAPICodePack"
0009:fixme:ntdll:EtwRegisterTraceGuidsW (0x96080a, (nil), {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 1, 0x32c22c, (null), (null), 0xcb98e8): stub
0009:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}
0009:fixme:shell:URL_ParseUrl failed to parse L"Eto.WinForms"
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module

Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: path
   at System.IO.Directory.GetParent(String path)
   at PartialityLauncher.GameManager.SaveAllMetadata()
   at PartialityLauncher.Desktop.Program.Main(String[] args)
0033:fixme:dbghelp:elf_search_auxv can't find symbol in module

Not sure if that's any more helpful.

Took a brief look at the code, and though I can see where it's complaining I'm not sure how to fix it. Maybe supply a default for GameManager::exePath or else validate it somehow? I don't know C#, other than it's familiar enough that I can read it. Much less try my own fix, since I don't have a Windows dev environment for starters.

Let me know if there's anything I can do to help. Would be happy to test attempted fixes if you don't have a Linux or MacOS machine, as long as you can supply me a build.

FrostBird347 commented 4 years ago

Same issue, I have tried specifying a path in the command input without any success.

PJB3005 commented 4 years ago

It's failing to load font "SystemFont.Bold" for a single button in the menu and then exiting after swallowing the exception with a try catch.