У меня есть приложение Xamarin для Android, в котором используется MVVMCross Framework. Мое приложение предназначено для Android 8.1
Сейчас я обновляю пакеты MVVMCross NuGet с версии 6.2.1 до версии 6.3.1 и столкнулся с несколькими проблемами, которые приводят к некомпилируемому состоянию кода.
Сначала MVVMCross v.6.3.1 требует, чтобы проекты Android были нацелены на Android 9.0. Хорошо, я обновил свойство целевого фреймворка и манифест Android для поддержки версии 9.0. Мое приложение скомпилировано и работает нормально.
Далее я обновил все пакеты MVVMCross NuGet до последней версии 6.3.1. Во время обновления несколько новых пакетов NuGet были добавлены в мой проект. Одним из них был Xamarin.Android.Support.DrawerLayout. Он был добавлен потому, что от него зависит Android-версия 9.0. Xamarin.Android.Support.Core.UI
Все пакеты MVVMCross были успешно обновлены, но VisualStudio начал показывать ошибку:
The type 'DrawerLayout' exists in both 'Xamarin.Android.Support.Core.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null'
and 'Xamarin.Android.Support.DrawerLayout, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null'
в коде:
public abstract class ViewWithMenuBase<T> : ViewBase<T> where T : ViewModelWithMenuBase
{
protected override int? ToolbarButtonResourceId => Resource.Drawable.ic_menu_black_24dp;
private DrawerLayout drawerLayout;
private NavigationView navigationView;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
drawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
}
}
Базовый класс определяется следующим образом:
public abstract class ViewBase<T>: MvxAppCompatActivity<T> where T : class, IMvxViewModel
{
...
}
Теперь, если я пытаюсь удалить ошибки Xamarin.Android.Support.Core.UI или Xamarin.Android.Support.DrawerLayout в редакторе кода VisualStudio, исчезает, но приложение не компилируется из-за ошибок, связанных с отсутствующими ссылками в удаленном пакете.
Итак, есть идеи, как решить эту ошибку? Куда мне смотреть?
Спасибо.