так что у меня в магазине есть приложение 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
Если вы видите, что трассировка стека исключения может быть вызвана тем, что исключение происходит в основном режиме, попробуйте включить смешанную отладку. Другими действиями могут быть создание аварийного дампа и его анализ.
@IgnacioSolerGarcia Я понимаю, что это не очень полезный вопрос, я просто опубликовал его в безнадежности :( как я могу включить смешанную отладку? Также я пытаюсь воспроизвести проблему, и теперь я не могу ее воспроизвести, но каким-то образом команда магазина всегда воспроизводит ее.
Пожалуйста, разместите код. Если проблема возникает случайно, и это тоже AccessViolationException, весьма вероятно, что вы обращаетесь к элементу пользовательского интерфейса из другого потока.
чего я не понимаю, так это того, что исключение возникает в InitializeComponent (), поэтому оно не происходит ни в одном коде, который я написал сам, а упомянутая вами ошибка обычно является «ошибкой потоковой передачи маршалла», которая решается с помощью Dispatcher, верно? именно поэтому я не знаю, какой код здесь показывать, поскольку исключение возникает в InitializeComponent (), и оно даже не достигает никакого написанного мной кода. @MartinZikmund
Я думаю, не могла ли эта проблема быть где-то внутри навигации с предыдущей страницы, например? Я думаю, что это также исключение нарушения прав доступа в сценарии потока, но странно, что это происходит в InitializaComponent. Я подозреваю, что на самом деле это происходит не там, а в одно и то же время. Но сказать сложно. Любой код поможет :-)
на самом деле это первая страница в моем корневом фрейме, поэтому на самом деле это не другая страница, и когда она приходит с другой страницы, исключение все еще возникает, хорошо, позвольте мне открыть приложение и попытаться показать вам какой-то код.
@MartinZikmund посмотри, я добавил код.
Если вы не можете получить исключение, вы можете попробовать отладку в модели Mixed. Щелкните правой кнопкой мыши свой проект -> Свойства -> Отладка -> Тип отладчика - Процесс приложения -> Смешанный.
да, спасибо @ NicoZhu-MSFT, но это будет полезно только в том случае, если я смогу воспроизвести эту проблему, которую я не могу сейчас, я смог воспроизвести ее раньше случайно, и теперь ее снова нет, но команда магазина всегда, кажется, воспроизводит ее .
@MartinZikmund, пожалуйста, посмотрите обновление, которое я смог получить трассировкой стека, может быть, это немного поможет?





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