I have a problem using my own MvvmCross plugins in an Android project, because the PluginLoader seems to expect a .Droid.dll of the exact namespace it is in.
Say I have three projects with this folder and namespace structure:
MyApp.Core:
Plugins/Settings/ISettings.cs
Plugins/Settings/PluginLoader.cs
MyApp.Droid:
Plugins/Settings/Settings.cs
Plugins/Settings/Plugin.cs
Bootstrap/SettingsPluginBootstrap.cs
MyApp.Touch:
Plugins/Settings/Settings.cs
Plugins/Settings/Plugin.cs
Bootstrap/SettingsPluginBootstrap.cs
The iOS project works just as expected, and finds the plugin without problem.
The Droid project on the other hand, fails with an exception: Could not load file or assembly 'MyApp.Plugins.Settings.Droid.dll' or one of its dependencies.
If I change the namespace of the PluginLoader from MyApp.Core.Plugins.Settings to simply MyApp, the plugin works; I guess it looks for the MyApp.dll and finds it. However, if I have multiple plugins in my app, they should each have their own namespace, they can't all be in the MyApp namespace.
Currently the only workaround I have found is to create a separate project for each plugin I create, though this feels a bit unnecessary.
Why does the PluginLoader insist on looking for the <PluginLoader namespace>.Droid.dll file on Android, when the PluginLoader on iOS finds the plugin without any problem?