Исключение voilation при доступе к странице UWP для компонента initializecomponent

так что у меня в магазине есть приложение uwp. все работало нормально, и затем я внес в него некоторые изменения, чтобы сделать обновление. Тем не менее, он работал нормально, я загрузил обновленный пакет в магазин, и сертификация магазина не прошла, согласно отчету. при переходе на одну из моих страниц приложение вылетает.

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

AccesVoilation, попытка чтения или записи памяти, это означает, что память может быть повреждена.

Теперь я не могу найти причину этого, и я не знаю, какой код здесь показывать, потому что нет даже трассировки стека исключения. когда я нажимаю на сведения об исключении, отладка автоматически останавливается.

КОД Это мой код для этого конструктора страниц.

public ShellPage()
    {
        InitializeComponent();
        DataContext = ViewModel;
        if (Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
        {
            NavigationMenu.Visibility = Visibility.Collapsed;
            ViewModel.Initialize(newShellFrame);
        }
        else
        {
            ViewModel.Initialize(shellFrame);// for creators update
        }
    }

ОБНОВИТЬ странное поведение, иногда я получаю это исключение, а иногда нет: /

ОБНОВЛЕНИЕ 2

трассировки стека

в Windows.UI.Xaml.Application.LoadComponent (компонент объекта, Uri resourceLocator, ComponentResourceLocation componentResourceLocation) \ r \ n в FluentVideoPlayer.Views.ShellPage.InitializeComponent () \ r \ n в FluentVideoPlayer.Views.ShellPage..ctor r \ n в FluentVideoPlayer.FluentVideoPlayer_XamlTypeInfo.XamlTypeInfoProvider.Activate_89_ShellPage () \ r \ n в FluentVideoPlayer.FluentVideoPlayer_XamlTypeInfo.XamlUserType.Activate

Так что, если вы не можете найти причину этого в исходном коде, отладчик и журналы представьте нам, что все, что у нас есть, - это ваше короткое сообщение с жалобой: D

Ignacio Soler Garcia 09.05.2018 16:55

Если вы видите, что трассировка стека исключения может быть вызвана тем, что исключение происходит в основном режиме, попробуйте включить смешанную отладку. Другими действиями могут быть создание аварийного дампа и его анализ.

Ignacio Soler Garcia 09.05.2018 16:56

@IgnacioSolerGarcia Я понимаю, что это не очень полезный вопрос, я просто опубликовал его в безнадежности :( как я могу включить смешанную отладку? Также я пытаюсь воспроизвести проблему, и теперь я не могу ее воспроизвести, но каким-то образом команда магазина всегда воспроизводит ее.

Muhammad Touseef 09.05.2018 17:14

Пожалуйста, разместите код. Если проблема возникает случайно, и это тоже AccessViolationException, весьма вероятно, что вы обращаетесь к элементу пользовательского интерфейса из другого потока.

Martin Zikmund 09.05.2018 17:51

чего я не понимаю, так это того, что исключение возникает в InitializeComponent (), поэтому оно не происходит ни в одном коде, который я написал сам, а упомянутая вами ошибка обычно является «ошибкой потоковой передачи маршалла», которая решается с помощью Dispatcher, верно? именно поэтому я не знаю, какой код здесь показывать, поскольку исключение возникает в InitializeComponent (), и оно даже не достигает никакого написанного мной кода. @MartinZikmund

Muhammad Touseef 09.05.2018 18:15

Я думаю, не могла ли эта проблема быть где-то внутри навигации с предыдущей страницы, например? Я думаю, что это также исключение нарушения прав доступа в сценарии потока, но странно, что это происходит в InitializaComponent. Я подозреваю, что на самом деле это происходит не там, а в одно и то же время. Но сказать сложно. Любой код поможет :-)

Martin Zikmund 09.05.2018 18:18

на самом деле это первая страница в моем корневом фрейме, поэтому на самом деле это не другая страница, и когда она приходит с другой страницы, исключение все еще возникает, хорошо, позвольте мне открыть приложение и попытаться показать вам какой-то код.

Muhammad Touseef 09.05.2018 18:24

@MartinZikmund посмотри, я добавил код.

Muhammad Touseef 10.05.2018 10:37

Если вы не можете получить исключение, вы можете попробовать отладку в модели Mixed. Щелкните правой кнопкой мыши свой проект -> Свойства -> Отладка -> Тип отладчика - Процесс приложения -> Смешанный.

Nico Zhu - MSFT 11.05.2018 07:47

да, спасибо @ NicoZhu-MSFT, но это будет полезно только в том случае, если я смогу воспроизвести эту проблему, которую я не могу сейчас, я смог воспроизвести ее раньше случайно, и теперь ее снова нет, но команда магазина всегда, кажется, воспроизводит ее .

Muhammad Touseef 11.05.2018 16:01

@MartinZikmund, пожалуйста, посмотрите обновление, которое я смог получить трассировкой стека, может быть, это немного поможет?

Muhammad Touseef 11.05.2018 17:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
11
128
0

Другие вопросы по теме