Я обновил версию MvvmCross версии 4.2.1 с версии 4.2.0 через NuGet, и теперь проект Android вылетает во время запуска. MvxException
брошено во заставках с сообщением:Вы должны позвонить EnsureLoaded в плагин File перед использованием DownloadCache
MvvmCross.Platform.Exceptions.MvxException: Вы должны вызвать EnsureLoaded на плагин Файл перед использованием DownloadCache
Я на самом деле звоню это метод в MvxAppCompatSetup.InitializeLastChance
переопределить. Это работало хорошо для меня с версией 4.2.0, но теперь код даже не ударил InitializeLastChance
при запуске версии 4.2.1.
protected override void InitializeLastChance()
{
base.InitializeLastChance();
MvvmCross.Plugins.File.PluginLoader.Instance.EnsureLoaded();
MvvmCross.Plugins.DownloadCache.PluginLoader.Instance.EnsureLoaded();
}
Я не могу переместить EnsureLoaded
звонки в InitializeFirstChance
, потому что я получаю исключение, потому что плагины еще не были инициализированы
Не удалось разрешить тип MvvmCross.Platform.Plugins.IMvxPluginManager
MvxSetup.InitializePluginFramework
, похоже, выбрасывает это исключение, когда вызывается InitializePluginFramework
.
NuGet отображается сообщениями об ошибках для каждого плагина я установил во время обновления:
[Отказ] Не удался подать файл»... \ Project.Droid \ Bootstap \ XXXBootstrap.cs'
Файлы, безусловно, есть, и пакет устанавливается без сообщения об ошибке.
Каков правильный способ решения этой проблемы?
Это похоже на проблему. –
. Остановившись, удалив вышеуказанные файлы из папки Bootstrap и явно определив порядок загрузки в методе InitializeLastChance(), похоже, это решит проблему. Подробнее о InitializeLastChance вы можете найти в [Индивидуальные настройки] (https: // github.com/MvvmCross/MvvmCross/wiki/Customizing-using-App-and-Setup) – JohnnyJaxs
Для тех, кто теперь сталкивается с MvxException: не удалось найти плагин-загрузчик для типа MvvmCross.Plugins.File.PluginLoader, здесь описано более длинное обходное решение https: //github.com/MvvmCross/MvvmCross-Plugins/issues/119#issuecomment-233129197 – foxanna