Ошибка PCL Acr.UserDialogs
В моем Xamarin
кроссплатформенное нативное приложение, я пытаюсь использовать индикатор загрузки из Acr.UserDialogs(ver 5.3)
, В портативном проекте я пытаюсь этот код:
public bool IsLoading
{
get { return _isLoading; }
set
{
_isLoading = value;
if (value)
{
UserDialogs.Instance.ShowLoading("Loading...", MaskType.Black);
}
else
{
UserDialogs.Instance.HideLoading();
}
}
}
По основному виду деятельности:
if (UserDialogs.Instance == null)
{
UserDialogs.Init(this);
}
В результате я ловлю следующее исключение:
System.ArgumentException: это библиотека PCL, а не библиотека платформы. Вы должны установить пакет nuget в свой основной исполняемый файл / проект приложения
Acr установлен в переносном проекте и в проекте droid: Acr
Что я делаю неправильно?
2 ответа
У меня была такая же проблема но в iOS. Вот так я решил проблему. Пожалуйста, убедитесь, что ниже зависимости должны быть установлены в каждом проекте по этой ссылке вместе с Acr.UserDialogs
(Я также рекомендую проверить зависимости в соответствии с вашей версией Acr.UserDialogs lib по указанной ссылке).
Все рамки
Splat (>= 1.6.2 && < 2.0.0)
MonoAndroid 1.0
AndHUD (>= 1.2.0 && < 2.0.0)
Splat (>= 1.6.2 && < 2.0.0)
Acr.Support (>= 2.1.0 && < 3.0.0)
Xamarin.Android.Support.Design (>= 23.3.0 && < 25.0.0)
UAP 10.0
Splat (>= 1.6.2 && < 2.0.0)
Coding4Fun.Toolkit.Controls (>= 2.1.8 && < 3.0.0)
Xamarin.iOS 1.0
Splat (>= 1.6.2 && < 2.0.0)
Acr.Support (>= 2.1.0 && < 3.0.0)
Не забудьте установить
Acr.UserDialogs
в каждом проекте вместе с переносным проектом.ПРИМЕЧАНИЕ. - Проверьте эту ссылку для настройки библиотеки (специально для Android эта библиотека требует инициализации
UserDialogs
в основной деятельности).
Я решаю это, удалив Acr.UserDialogs из всех проектов. Установите Acr.UserDialog в проекте Android. Очистите и перестройте решение и установите Acr.UserDialog в переносимом проекте.
Далее используйте его в Portable-проекте.
UserDialogs.Instance.ShowSuccess("Some Text");