WedX - журнал о программировании и компьютерных науках

активность xamarin IllegalStateException была уничтожена при закрытии приложения

Я получаю исключение IllegalStateException с сообщением «активность была уничтожена», когда закрываю приложение.

В моем App.cs я объявляю общедоступную статическую MasterPage:

protected override void OnStart()
    {
        // Handle when your app starts
        if (Device.OS == TargetPlatform.Android)
        {
            Device.BeginInvokeOnMainThread(() =>
            {
                masterdetail = new MasterPage();
                MainPage = masterdetail;
            });
        }
        else
        {
            masterdetail = new MasterPage();
            MainPage = masterdetail;
        }
    }

И в MasterPage.cs я объявляю Master и DetilPage:

public partial class MasterPage : MasterDetailPage
{

    public MasterPage()
    {

        var IsLoggedIn = false;

        if (CrossSecureStorage.Current.HasKey("isLoggedIn"))
        {
            IsLoggedIn = string.Equals(CrossSecureStorage.Current.GetValue("isLoggedIn"), "true", System.StringComparison.CurrentCultureIgnoreCase);
        }

        Master = SetMasterContentPage();
        if (IsLoggedIn)
        {   
            Detail = new NavigationPage(new TaxonomyOverviewPage());
        }
        else {
            Detail = new NavigationPage(new LoginPage());
        }
    }

    ContentPage SetMasterContentPage()
    {
        var masterPage = new ContentPage { Title = "Test"};
        masterPage.Content = new StackLayout
        {
            Children = {
                new Label{Text="Label1"},
                new Label{Text="Label2"},
                new Label{Text="Label3"}
            }
        };

        return masterPage;
    }

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        GC.Collect();
    }
}

  • Строка GC.Collect();, вероятно, вызывает это? 20.12.2016
  • @GeraldVersluis Нет, к сожалению, нет. Это была попытка решить проблему, но безуспешно. Я также пытался закомментировать строки GC.Collect();, но исключение все еще существует. 20.12.2016
  • Когда вы закрываете приложение или открываете его снова? См. эту тему на форумах Xamarin с похожей проблемой 20.12.2016
  • Приложение закрыто, я попробую решение из ветки Xamarin Forums. Спасибо. 20.12.2016
  • @GeraldVersluis Решение с форума не исправляет исключение. У меня нет TabLayout. 20.12.2016
  • Это ошибка в Xamarin. bugzilla.xamarin.com/show_bug.cgi?id=46494 20.12.2016

Ответы:


1

Хорошо, это была ошибка в Xamarin.Forms версии 2.3.3.175. Чтобы исправить эту ошибку, установите более раннюю версию Xamarin.Forms. У меня работает приложение с версией 2.3.0.107.

Ошибка в версии 2.3.3.175 должна быть исправлена ​​в версии 2.3.4-pre1.

21.12.2016
  • у меня даже на 2.3.4-pre1 тоже самое происходит 14.01.2017
  • Возможно, xamarin не исправит это в версии 2.3.4-pre1 :( У меня версия 2.3.2.127 и эта ошибка не возникает. 23.01.2017
  • Я протестировал версию 2.3.4-pre1, и ошибка исчезла. 24.01.2017
  • После обновления Android SDK 24 до 25 проблема исчезла. 24.01.2017
  • Пожалуйста, используйте версию = 2.3.4.192-pre2 - эта проблема исправлена. 08.03.2017
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]