2012-08-09 19 views
8

Ho un comportamento strano durante il debug/esecuzione della mia app metropolitana. Durante il drag'n'drop lo schermo sarà aggiornato. Avevo aggiunto alcune funzionalità per bloccare le proprietà associate dall'aggiornamento mentre è in corso il drag'n'drop.Win8 - Eccezione non gestita in Windows.UI.Xaml.dll

Ma a volte l'incidente app, ma al posto di gettare qualche eccezione che posso mettere a punto, tutto quello che ho è una finestra dicendo di aprire un

Un'eccezione win32 esterna just-in-time-debugger non gestita si è verificato in SOME_APP.exe [7785].

(Il debugger esterno non portare più informazioni)

E l'output dice:

Eccezione non gestita a 0x05017145 (Windows.UI.Xaml.dll) in SOME_APP.exe: 0xC0000005 : Posizione di lettura della violazione di accesso 0x00000088.

Sto lavorando su un dispositivo x64. Qualcuno ha mai sentito parlare di questo problema?

+0

Ti ha dato un'eccezione perfettamente valida - Violazione di accesso. Stai provando ad accedere o modificare la memoria che non è la tua. – steveg89

+0

sì, sembra, ma non faccio alcun indirizzamento di memoria per codice. Potrebbero esserci dei problemi con win8, xaml.dll e/o sistema a 32 bit contro 64 bit? – salcosand

+0

Non posso dirlo con certezza, ma il mio primo test consisterebbe nel commentare il codice che disattiva gli aggiornamenti e vedere se l'errore persiste. Potresti, senza saperlo, corrompere la memoria da qualche parte lì dentro che potrebbe portare a questo errore. Questo è tutto ipotetico però. Se l'errore non si verifica più con quel codice rimosso, potresti voler pubblicare ciò che stai facendo esattamente lì in modo che possiamo cercare gli errori. – steveg89

risposta

11

Se passate oggetti implementati INotifyPropertyChanged, BindableBase ereditato o DependencyObject ecc. Tramite NavigationParameter; e quindi associare in NavigatedPage (o legarli nella pagina di navigazione) molto probabilmente avrai questo errore. Durante la navigazione, non passare alcun oggetto ad eccezione del tipo primitivo tramite NavigationParameter.

Si sta ottenendo questa eccezione perché i metodi di riferimento inesistenti. Per esempio.

  1. Si dispone di un oggetto denominato Categorie che eredita BindableBase.
  2. Lo hai legato a Home.xaml.
  3. Il meccanismo di associazione di Home.xaml ha sottoscritto l'evento PropertyChanged dell'oggetto Categorie.
  4. È stato spostato l'oggetto Article.xaml che passa come oggetto NavigationParameter.
  5. Hai vincolato l'oggetto Categorie a Article.xaml.
  6. Quando una proprietà cambia nell'oggetto Categorie; quella proprietà genererà un evento PropertyChanged.
  7. Ci sono due abbonati a quell'evento. Home.xaml e Article.xaml, ma Home.xaml non esiste più da quando ti sei allontanato da esso. Ma il vostro delegato ne detiene l'indirizzo; quindi prova ad eseguire; e non riescono con l'errore di violazione di accesso.
Problemi correlati