Приложение .NET MAUI IOS случайно аварийно завершает работу при нескольких навигацияхC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Приложение .NET MAUI IOS случайно аварийно завершает работу при нескольких навигациях

Сообщение Anonymous »

Я использую навигацию на основе стека (аналогично основной информации в формах Xmarion). Приложение отлично работает для симуляторов Android и IOS, но на физическом iPhone оно случайно аварийно завершает работу.
Это мой App.xaml:

Код: Выделить всё

MainPage = new Sidebar()
{
FlowDirection = FlowDirection.LeftToRight
};
Это sibebar.xmal:

Код: Выделить всё

public partial class Sidebar : FlyoutPage
{

public Sidebar()
{
InitializeComponent();
Detail = new NavigationPage(new MainPage());
}

private async void GoToApplicationSettingsPage(object sender, TappedEventArgs e)
{

await Detail.Navigation.PushAsync(new ApplicationSetting());
IsPresented = false;
}

private async void GoToHxSettingsPage(object sender, TappedEventArgs e)
{
await Detail.Navigation.PushAsync(new MedicalHistorySettings(), true);
IsPresented = false;
}

private async void GoToVisitsSettingsPage(object sender, TappedEventArgs e)
{
await Detail.Navigation.PushAsync(new VisitsSettings(), true);
IsPresented = false;
}

private async void GoToOperationsSettingsPage(object sender, TappedEventArgs e)
{
await Detail.Navigation.PushAsync(new OperationsSettings(), true);
IsPresented = false;
}

private async void GoToVisitsSerachPage(object sender, TappedEventArgs e)
{
await Detail.Navigation.PushAsync(new VisitsSearch(), true);
IsPresented = false;
}

private async void GoToOperationsSearchPage(object sender, TappedEventArgs e)
{
await Detail.Navigation.PushAsync(new OperationsSearch(), true);
IsPresented = false;
}

}
Вот что происходит при использовании iPhone 13:
[img]https:/ /i.sstatic.net/51ILCqWH.gif[/img]

Как видно, приложение аварийно завершает работу, когда этот код выполняется 3 раза:

Код: Выделить всё

await Detail.Navigation.PushAsync(new ApplicationSetting(), true);
Я пробовал на другом устройстве (iPhone 13 pro max) при первом развертывании приложения на устройстве оно работало без проблем, но при повторном развертывании оно также вылетало, но при навигации по 5 или 7 раз. Это действительно очень случайно и неожиданно. Я попробовал режим отладки и выпуска, но это не решило проблему. Кто-то предложил очистить стек перед навигацией, поэтому я попробовал следующее:

Код: Выделить всё

await Detail.Navigation.PopAsync();
await Detail.Navigation.PushAsync(new ApplicationSetting());
Но та же проблема. Стоит отметить, что во время выполнения не возникает никаких ошибок или исключений, но когда я тестирую его несколько раз, я получаю эту ошибку только два раза:

An в Microsoft.iOS.dll произошло необработанное исключение типа «System.InvalidCastException»: «Указанное приведение недопустимо».
в UIKit.UIApplication.xamarin_UIApplicationMain(Int32) argc, IntPtr argv, IntPtr имя_основного класса, IntPtr имя_класса_делегата, IntPtr* gchandle)
at UIKit.UIApplication.UIApplicationMain(Int32 argc, String[] argv, IntPtr имя_основногокласса, IntPtr имя_класса делегата)
at UIKit.UIApplication.Main (Нить[] args, Введите PrincipalClass, Введите DelegateClass)
в EClinicMaui.Program.Main(String[] args) в /Users/sysprobs/Desktop/E-Clinic/EClinicMaui/Platforms/iOS/Program.cs:line 14

Я загружаю проект на github, чтобы каждый мог его протестировать.
Я используя код Visual Studio в MAC OS.

Подробнее здесь: https://stackoverflow.com/questions/793 ... eral-times
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»