jesseward / jellyfin-plugin-lastfm

LastFM plugin for the Jellyfin media system. Fork of the Emby Last.FM plug-in
178 stars 11 forks source link

Plugin crashes on startup due to incompatible shared libraries. #43

Closed nickholway closed 1 year ago

nickholway commented 1 year ago

I'm trying to get v7.0.0.0 of the plugin running on Jellyfin, I'm running the jellyfin/jellyfin:latest container (ie 10.8.7) on a Synology NAS.

I've added https://jellyfin-repo.jesseward.com/manifest.json as a repo in Jellyfin and have installed the plugin and restarted the container. In Jellyfin's plugin page I see just "Status: NotSupported"; in the container's log I see the following:

[2022-11-18 21:56:34.084 +00:00] [ERR] [1] Emby.Server.Implementations.Plugins.PluginManager: Failed to load assembly "/config/plugins/LastFM_7.0.0.0/home/runner/work/jellyfin-plugin-lastfm/jellyfin-plugin-lastfm/Jellyfin.Plugin.Lastfm/bin/Debug/net5.0/Jellyfin.Plugin.Lastfm.dll". This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin. System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Method 'ExecuteAsync' in type 'Jellyfin.Plugin.Lastfm.ScheduledTasks.ImportLastfmData' from assembly 'Jellyfin.Plugin.Lastfm, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation. at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) at System.Reflection.Assembly.GetTypes() at Emby.Server.Implementations.Plugins.PluginManager.LoadAssemblies()+MoveNext() System.TypeLoadException: Method 'ExecuteAsync' in type 'Jellyfin.Plugin.Lastfm.ScheduledTasks.ImportLastfmData' from assembly 'Jellyfin.Plugin.Lastfm, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

ihatetoregister commented 1 year ago

Same issue on macOS, tries to load a Windows dll?

[2023-03-24 15:07:27.396 +01:00] [ERR] [1] Emby.Server.Implementations.Plugins.PluginManager: Failed to load assembly "/Users/<name>/.local/share/jellyfin/plugins/LastFM_7.0.0.0/home/runner/work/jellyfin-plugin-lastfm/jellyfin-plugin-lastfm/Jellyfin.Plugin.Lastfm/bin/Debug/net5.0/Jellyfin.Plugin.Lastfm.dll". This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Method 'ExecuteAsync' in type 'Jellyfin.Plugin.Lastfm.ScheduledTasks.ImportLastfmData' from assembly 'Jellyfin.Plugin.Lastfm, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.Assembly.GetTypes()
   at Emby.Server.Implementations.Plugins.PluginManager.LoadAssemblies()+MoveNext()
System.TypeLoadException: Method 'ExecuteAsync' in type 'Jellyfin.Plugin.Lastfm.ScheduledTasks.ImportLastfmData' from assembly 'Jellyfin.Plugin.Lastfm, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
ihatetoregister commented 1 year ago

Did some modifications to build for net 6 and it seem to work, please try it out

jesseward commented 1 year ago

thanks @ihatetoregister and others for reporting this.

This was due to this plugin falling way behind current upstream dependencies. I have merged a few changes and pushed a new build 8.0.0.2 that is now available to download via the Jellyfin plugin repository.

The updated version is compatible with the 10.8 JF branch