Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No images loading, buttons not working #14

Closed
npeterson-npk opened this issue Jul 7, 2020 · 21 comments
Closed

No images loading, buttons not working #14

npeterson-npk opened this issue Jul 7, 2020 · 21 comments

Comments

@npeterson-npk
Copy link

Hi there,

I downloaded and installed, but whenever I try to configure any buttons on my stream deck I'm just getting the question mark, and when I go in-game and press the buttons nothing's happening.

Important to note, I did notice when I try and configure the images it says "C:\fakepath\C%3A%2...." instead of the directory my images are actually stored in.

FATAL errors from pluginlog.log:

2020-07-06 20:32:29.1402|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Toggle - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. at Elite.Buttons.Toggle..ctor(SDConnection connection, InitialPayload payload) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext() 2020-07-06 20:32:29.1552|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Toggle - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. at Elite.Buttons.Toggle..ctor(SDConnection connection, InitialPayload payload) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext() 2020-07-06 20:32:29.1678|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.FSS - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. at Elite.Buttons.FSS..ctor(SDConnection connection, InitialPayload payload) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext() 2020-07-06 20:32:33.7780|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Toggle - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. at Elite.Buttons.Toggle..ctor(SDConnection connection, InitialPayload payload) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()

@mhwlng
Copy link
Owner

mhwlng commented Jul 7, 2020

Hi
are you using a streamdeck classic or XL ?
are you using the latest streamdeck software 4.8.0.13007 ?
are you using it on windows 10 ?
do you have up to date dotnet framework installed ?

under the 'more actions' button, you will find other plugins made by 'barraider' (my plugin is based on his code),
can you try some ? do they work ?

you see the fakepath... stuff when the plugin dll is not running, but I don't know why the dll won't start.

@solarisfire
Copy link

I'm having this issue too...

Streemdeck classic, windows 10, streamdeck software 4.8.1.13027.

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

In the past I have seen this only when some dotnet framework files were missing

under the 'more actions' button, you will find other plugins made by 'barraider' (my plugin is based on his code),
can you try some ? do they work ?

@solarisfire
Copy link

image

@solarisfire
Copy link

I don't see anything that says "more actions"... Any link to the correct redist version of .net?

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

it's in your own screenshot, bottom right

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

does your log show exactly the same error as in the first post above ?

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

@solarisfire
Copy link

I downloaded his world time action and it works perfectly.

Also:

image

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

what about the error in the log file?

@solarisfire
Copy link

Can't even find the log file... Or the plugin install in the plugins directory...

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

It has to exist otherwise you wouldn't see the buttons in your screenshot
this is the path:
%appdata%\Elgato\StreamDeck\Plugins\com.mhwlng.elite.sdPlugin

@solarisfire
Copy link

2020-07-13 14:43:41.7312|DEBUG|BarRaider.SdTools.Logger|Logger Initialized
2020-07-13 14:43:41.7502|INFO|BarRaider.SdTools.Logger|Init Elite Api
2020-07-13 14:43:41.7552|INFO|BarRaider.SdTools.Logger|monitoring key binding path #1 C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
2020-07-13 14:43:41.7552|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #1 StartPreset.start
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|monitoring key binding path #2 F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #2 SaitekX55.binds
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|journal path C:\Users\Solar\Saved Games\Frontier Developments\Elite Dangerous
2020-07-13 14:43:42.2778|INFO|BarRaider.SdTools.Logger|Plugin Loading - 6 Actions Found
2020-07-13 14:43:42.3728|INFO|BarRaider.SdTools.Logger|Plugin version: 2.0.6
2020-07-13 14:43:42.3728|INFO|BarRaider.SdTools.Logger|Connecting to Stream Deck
2020-07-13 14:43:44.4432|INFO|BarRaider.SdTools.Logger|Connected to Stream Deck
2020-07-13 14:43:44.4432|INFO|BarRaider.SdTools.Logger|GlobalSettingsManager initialized

@solarisfire
Copy link

Restarted stream deck and it gave me a little more info:

2020-07-13 14:43:41.7312|DEBUG|BarRaider.SdTools.Logger|Logger Initialized
2020-07-13 14:43:41.7502|INFO|BarRaider.SdTools.Logger|Init Elite Api
2020-07-13 14:43:41.7552|INFO|BarRaider.SdTools.Logger|monitoring key binding path #1 C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
2020-07-13 14:43:41.7552|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #1 StartPreset.start
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|monitoring key binding path #2 F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #2 SaitekX55.binds
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|journal path C:\Users\Solar\Saved Games\Frontier Developments\Elite Dangerous
2020-07-13 14:43:42.2778|INFO|BarRaider.SdTools.Logger|Plugin Loading - 6 Actions Found
2020-07-13 14:43:42.3728|INFO|BarRaider.SdTools.Logger|Plugin version: 2.0.6
2020-07-13 14:43:42.3728|INFO|BarRaider.SdTools.Logger|Connecting to Stream Deck
2020-07-13 14:43:44.4432|INFO|BarRaider.SdTools.Logger|Connected to Stream Deck
2020-07-13 14:43:44.4432|INFO|BarRaider.SdTools.Logger|GlobalSettingsManager initialized
2020-07-13 14:47:31.7846|INFO|BarRaider.SdTools.Logger|Reloading Key Bindings
2020-07-13 14:47:31.7846|INFO|BarRaider.SdTools.Logger|monitoring key binding path #1 C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
2020-07-13 14:47:31.7846|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #1 StartPreset.start
2020-07-13 14:47:31.7846|FATAL|BarRaider.SdTools.Logger|Unhandled Exception: System.IO.FileNotFoundException: Could not find file 'F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.binds'.
File name: 'F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.binds'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
at System.IO.StreamReader..ctor(String path)
at Elite.Program.GetKeyBindings()
at Elite.Program.HandleKeyBindingEvents(Object sender, Object evt)
at Elite.KeyBindingWatcher.UpdateStatus(Object sender, FileSystemEventArgs e)
at System.IO.FileSystemWatcher.OnChanged(FileSystemEventArgs e)
at System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(Int32 action, String name)
at System.IO.FileSystemWatcher.CompletionStatusChanged(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
2020-07-13 14:47:32.8057|DEBUG|BarRaider.SdTools.Logger|Logger Initialized
2020-07-13 14:47:32.8257|INFO|BarRaider.SdTools.Logger|Init Elite Api
2020-07-13 14:47:32.8292|INFO|BarRaider.SdTools.Logger|monitoring key binding path #1 C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
2020-07-13 14:47:32.8292|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #1 StartPreset.start
2020-07-13 14:47:32.8888|FATAL|BarRaider.SdTools.Logger|Elite Api: System.IO.FileNotFoundException: Could not find file 'F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.binds'.
File name: 'F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.binds'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
at System.IO.StreamReader..ctor(String path)
at Elite.Program.GetKeyBindings()
at Elite.Program.Main(String[] args)
2020-07-13 14:47:32.9793|INFO|BarRaider.SdTools.Logger|Plugin Loading - 6 Actions Found
2020-07-13 14:47:33.0923|INFO|BarRaider.SdTools.Logger|Plugin version: 2.0.6
2020-07-13 14:47:33.0923|INFO|BarRaider.SdTools.Logger|Connecting to Stream Deck
2020-07-13 14:47:35.1888|INFO|BarRaider.SdTools.Logger|Connected to Stream Deck
2020-07-13 14:47:35.1888|INFO|BarRaider.SdTools.Logger|GlobalSettingsManager initialized
2020-07-13 14:47:35.2163|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Toggle - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Elite.Buttons.Toggle..ctor(SDConnection connection, InitialPayload payload)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()
2020-07-13 14:47:35.2333|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Toggle - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Elite.Buttons.Toggle..ctor(SDConnection connection, InitialPayload payload)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()
2020-07-13 14:47:35.2483|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Hyperspace - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Elite.Buttons.Hyperspace..ctor(SDConnection connection, InitialPayload payload)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()
2020-07-13 14:47:35.2533|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.FSS - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Elite.Buttons.FSS..ctor(SDConnection connection, InitialPayload payload)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()
2020-07-13 14:48:00.9476|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Toggle - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Elite.Buttons.Toggle..ctor(SDConnection connection, InitialPayload payload)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()
2020-07-13 14:48:00.9476|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Toggle - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Elite.Buttons.Toggle..ctor(SDConnection connection, InitialPayload payload)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()
2020-07-13 14:48:00.9476|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.Hyperspace - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Elite.Buttons.Hyperspace..ctor(SDConnection connection, InitialPayload payload)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()
2020-07-13 14:48:00.9551|FATAL|BarRaider.SdTools.Logger|Could not create instance of Elite.Buttons.FSS - Maybe class does not inherit PluginBase with the same constructor? System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Elite.Buttons.FSS..ctor(SDConnection connection, InitialPayload payload)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at BarRaider.SdTools.PluginContainer.<Connection_OnWillAppear>d__13.MoveNext()

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

ok, it has nothing to do with dotnet.

the crash is related to this error :

2020-07-13 14:47:31.7846|FATAL|BarRaider.SdTools.Logger|Unhandled Exception: System.IO.FileNotFoundException: Could not find file 'F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.binds'.

I will investigate the path error issue and see if I can fix that in the plugin.

@solarisfire
Copy link

2020-07-13 14:43:41.7312|DEBUG|BarRaider.SdTools.Logger|Logger Initialized
2020-07-13 14:43:41.7502|INFO|BarRaider.SdTools.Logger|Init Elite Api
2020-07-13 14:43:41.7552|INFO|BarRaider.SdTools.Logger|monitoring key binding path #1 C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
2020-07-13 14:43:41.7552|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #1 StartPreset.start
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|monitoring key binding path #2 F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #2 SaitekX55.binds
2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|journal path C:\Users\Solar\Saved Games\Frontier Developments\Elite Dangerous
2020-07-13 14:43:42.2778|INFO|BarRaider.SdTools.Logger|Plugin Loading - 6 Actions Found
2020-07-13 14:43:42.3728|INFO|BarRaider.SdTools.Logger|Plugin version: 2.0.6
2020-07-13 14:43:42.3728|INFO|BarRaider.SdTools.Logger|Connecting to Stream Deck
2020-07-13 14:43:44.4432|INFO|BarRaider.SdTools.Logger|Connected to Stream Deck
2020-07-13 14:43:44.4432|INFO|BarRaider.SdTools.Logger|GlobalSettingsManager initialized
2020-07-13 14:47:31.7846|INFO|BarRaider.SdTools.Logger|Reloading Key Bindings
2020-07-13 14:47:31.7846|INFO|BarRaider.SdTools.Logger|monitoring key binding path #1 C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
2020-07-13 14:47:31.7846|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #1 StartPreset.start
2020-07-13 14:47:31.7846|FATAL|BarRaider.SdTools.Logger|Unhandled Exception: System.IO.FileNotFoundException: Could not find file 'F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.binds'.
File name: 'F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.binds'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost)
at System.IO.StreamReader..ctor(String path)
at Elite.Program.GetKeyBindings()
at Elite.Program.HandleKeyBindingEvents(Object sender, Object evt)
at Elite.KeyBindingWatcher.UpdateStatus(Object sender, FileSystemEventArgs e)
at System.IO.FileSystemWatcher.OnChanged(FileSystemEventArgs e)
at System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(Int32 action, String name)
at System.IO.FileSystemWatcher.CompletionStatusChanged(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

StartPreset.start simply contains the word:

Custom

But then it looks for:
F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.bind

Which does not exist...

Custom bindings are kept in:
C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings\Custom.3.0.binds

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

2020-07-13 14:43:41.8487|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #2 SaitekX55.binds

so where does it get 'SaitekX55.binds' from ?

did you change some ED settings after the crash of the plugin ?

if you restart the streamdeck software, does it still say SaitekX55.binds in the log file ?

I'll investigate the exact logic when I get home from work :

F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.bind

@solarisfire
Copy link

Yes I was messing around with keybinds so it changed from SaitekX55.binds to Custom.binds.

I created a symbolic link:

C:\WINDOWS\system32>mklink "F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.bind" "C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings\Custom.3.0.binds"
symbolic link created for F:\SteamLibrary\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\ControlSchemes\Custom.bind <<===>> C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings\Custom.3.0.binds

And now things seem to work perfectly. I think it may just be logic from where ED isn't installed on the same HDD?

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

please try 2.0.7 without your symbolic link

It should no longer crash when the binding file can't be found.

however, I haven't found why it won't automatically read:

C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings\Custom.3.0.binds
if StartPreset.start in the same directory contains the word Custom.

I added more logging about which file name it tried and could not access.

@solarisfire
Copy link

That works great!

2020-07-13 18:24:57.7533|DEBUG|BarRaider.SdTools.Logger|Logger Initialized
2020-07-13 18:24:57.7708|INFO|BarRaider.SdTools.Logger|Init Elite Api
2020-07-13 18:24:57.7708|INFO|BarRaider.SdTools.Logger|monitoring key binding path #1 C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
2020-07-13 18:24:57.7708|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #1 StartPreset.start
2020-07-13 18:24:57.8638|INFO|BarRaider.SdTools.Logger|monitoring key binding path #2 C:\Users\Solar\AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings
2020-07-13 18:24:57.8638|INFO|BarRaider.SdTools.Logger|monitoring key binding file name #2 Custom.3.0.binds
2020-07-13 18:24:57.8638|INFO|BarRaider.SdTools.Logger|journal path C:\Users\Solar\Saved Games\Frontier Developments\Elite Dangerous
2020-07-13 18:24:58.3257|INFO|BarRaider.SdTools.Logger|Plugin Loading - 6 Actions Found
2020-07-13 18:24:58.4123|INFO|BarRaider.SdTools.Logger|Plugin version: 2.0.7
2020-07-13 18:24:58.4123|INFO|BarRaider.SdTools.Logger|Connecting to Stream Deck
2020-07-13 18:25:00.4743|INFO|BarRaider.SdTools.Logger|Connected to Stream Deck
2020-07-13 18:25:00.4743|INFO|BarRaider.SdTools.Logger|GlobalSettingsManager initialized

Thanks for the help 😃

@mhwlng
Copy link
Owner

mhwlng commented Jul 13, 2020

ok, good
I think the problem may have been that when you switched from SaitekX55.binds to custom3.0.binds
that ED first updated StartPreset.start and only after that created the custom3.0.binds file ?
so when the plugin tried to read it , it didn't exist yet.

@mhwlng mhwlng closed this as completed Jul 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants