2015-04-24 8 views
12

EDIT: Si scopre che non era Chrome ma Android System WebView. Diversi altri utenti su Google Play Store hanno lasciato risposte come Arresta le app senza errori.La WebView del sistema Android blocca le app Android! "Le pietre tombali sono disabilitate su JB MR2 + user build"

Original post:

Stasera il mio Chrome app aggiornato (Android 5.0.2) e quando provo a costruire la mia applicazione Xamarin Android in modalità debug ottengo l'errore:

[google-breakpad] ### ### ### ### ### ### ### ### ### ### ### ### ###

[google-breakpad] Chrome build fingerprint:

[google-breakpad] 1.0

[google-breakpad] 1

[google-breakpad] 5c230f07-455f-4c1f-91eb-9c44019cd813

[google-breakpad] ### ### ### ### ### ### ### ### ### ### ### ### ###

[google-breakpad] Tombstones are disabled on JB MR2+ user builds.

[google-breakpad] ### ### ### ### ### ### ### ### ### ### ### ### ###

Nella console posso trovare il messaggio di errore:

E/SysUtils﹕ ApplicationContext is null in ApplicationStatus

che sembra essere parte di chro mium.

L'errore si visualizza nella console e l'app ritorna indietro (ma non viene distrutta) quando la vista web restituisce sembra. La webview è pubblicata in un altro framework.

Non ho apportato modifiche da ieri, quando tutto ha funzionato.

Dopo la costruzione (e arresto anomalo) l'esecuzione dell'app dal dispositivo funziona come escluso.

La mia versione di build di destinazione è API 21 e l'API minima è 14 (ma non riesce anche a 19).

risposta

3

Si scopre che non era Chrome ma Android System WebView che ha causato l'arresto anomalo dell'app. Diversi altri utenti su Google Play Store hanno lasciato risposte come Arresta le app senza errori.

EDIT:

Jonathan Pryor sulla Xamarin Bugzilla postato this comment:

As mentioned in Comment #2 and Comment #3, the problem is that the Google Play Service WebView and related types is clobbering existing SIGSEGV handlers, which screws things up for all native code which relies on signal handlers (e.g. Houdini).

As a workaround, it is possible to remove the need for a SIGSEGV handler for NullReferenceException raising, by setting the MONO_DEBUG variable to contain the value "explicit-null-checks":

http://docs.go-mono.com/?link=man%3amono(1)

This can be done by adding a file to your App project with a Build action of AndroidEnvironment:

http://developer.xamarin.com/guides/android/advanced_topics/environment/

Then adding the following line to the file:

MONO_DEBUG=explicit-null-checks 
+0

Si può verificare che questo è stato risolto sulla nostra app una volta disinstallati gli aggiornamenti .. @ fred-larsen puoi aggiungere un link qui al rapporto (se possibile)? – 242Eld

+0

@ 242Eld, non sono riuscito a trovare un luogo adatto per la segnalazione, quindi ho finito per segnalarlo su Google Play Store utilizzando "Flag inappropriate". Ho controllato "codice dannoso" e ho scritto un riassunto. Non sono sicuro se sia stato efficace. – Fhl

+1

un bug report era [segnalato] (https://code.google.com/p/chromium/issues/detail?id=481420) per chromium, [questo post] (https://bugzilla.xamarin.com/show_bug .cgi? id = 29365) sembra risolvere il problema (come soluzione alternativa) – 242Eld

2

È possibile disinstallare gli aggiornamenti WebView, in modo da poter lavorare al vostro progetto mentre questo è fisso.

Abbiamo scoperto che nel nostro caso è andato in crash quando è stata lanciata un'eccezione. Se abbiamo usato Java.Lang.Exception al posto delle eccezioni C#, si è arrestato in modo anomalo.

+0

Grazie, l'ho fatto :) – Fhl

+0

Ok ho capito, per fare questo goto App Manager, e cercare Android System WebView, quindi fare clic su Disinstalla aggiornamenti. –

0

Ho trovato una correzione per Unity. È stato verificato e testato.

1) Installare questo script sotto Sotto YOUR_UNITY_PROJECT/Attività/Editor (Credits a Prime31 per questo script impressionante):

https://github.com/prime31/P31UnityAddOns/blob/master/Editor/GlobalDefinesWizard.cs

2) Come @fhl menzionato, è necessario aggiungere MONO_DEBUG = explicit- assegni null al globale definisce, puoi farlo facendo clic sul tuo tag di definizione globale appena aggiunto e assicurati che assomigli a questo: enter image description here

3) Ora crea una nuova build e dovrebbe risolvere il tuo crash .