web-dev-qa-db-fra.com

Système Android WebView bloque les applications Android! "Les pierres tombales sont désactivées sur les versions utilisateur JB MR2 +"

EDIT: Il s'avère que ce n'était pas Chrome mais Android System WebView. Plusieurs autres utilisateurs de Google Play Store ont laissé des réponses telles que Crashes apps sans erreur.

Message original:

Ce soir mon Application Chrome mis à jour (Android 5.0.2) et lorsque j'essaie de créer mon application Xamarin Android en mode DEBUG, le message d'erreur suivant s'affiche:

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

[google-breakpad] Empreinte digitale de build Chrome:

[google-breakpad] 1.0

[google-breakpad] 1

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

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

[google-breakpad] Les pierres tombales sont désactivées sur les versions utilisateur JB MR2 +.

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

Je peux trouver le message d'erreur dans la console:

E/SysUtils ﹕ ApplicationContext est null dans ApplicationStatus

Ce qui semble faire partie du chrome.

L'erreur s'affiche dans la console et l'application revient en arrière (mais n'est pas détruite) lorsque la vue Web est renvoyée, il semble que ... .. La vue Web est émise dans un autre cadre.

Je n’ai fait aucun changement depuis hier, lorsque tout a fonctionné.

Après la construction (et le plantage) de l'exécution de l'application à partir de l'appareil, les fonctions sont exceptées.

Ma version de construction cible est API 21 et l'API minimum est 14 (mais il échoue également à 19).

12
Fhl

Il s’avère que ce n’est pas Chrome mais Système Android WebView qui a provoqué le blocage de l’application. Plusieurs autres utilisateurs de Google Play Store ont laissé des réponses telles que Crashes apps sans erreur.

MODIFIER: 

Jonathan Pryor sur Xamarin Bugzilla a posté ce commentaire :

Comme mentionné dans les commentaires 2 et 3, le problème est que Google Play Service WebView et les types associés surchargent les gestionnaires SIGSEGV existants, qui bousille tout le code natif qui repose sur des gestionnaires de signaux (par exemple Houdini).

En guise de solution de contournement, il est possible de supprimer la nécessité d'un gestionnaire SIGSEGV pour NullReferenceException en levant, en définissant la variable MONO_DEBUG pour contenir la valeur "explicit-null-checks":

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

Cela peut être fait en ajoutant un fichier à votre projet App avec une action Build de AndroidEnvironment:

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

Puis en ajoutant la ligne suivante au fichier:

MONO_DEBUG=explicit-null-checks
3
Fhl

J'ai déposé un bug de chrome pour ce qui semble être la cause sous-jacente. http://code.google.com/p/chromium/issues/detail?id=481420

3
senorplow

Vous pouvez désinstaller les mises à jour de WebView afin de pouvoir travailler sur votre projet tant que ce problème est résolu.

Nous avons découvert que dans notre cas, il s'était écrasé lorsqu'une exception avait été lancée. Si nous avons utilisé Java.Lang.Exception au lieu des exceptions C #, le plantage a cessé.

2
YaPaKo

J'ai trouvé un correctif pour Unity. Cela a été vérifié et testé.

1) Installez ce script sous sous YOUR_UNITY_PROJECT/Assets/Editor (crédits de Prime31 pour ce script génial):

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

2) Comme @fhl l'a mentionné, vous devez ajouter MONO_DEBUG = explicit-null-checks aux contrôles globaux, vous pouvez le faire en cliquant sur votre balise de définition globale récemment ajoutée et assurez-vous qu'elle ressemble à ceci:  enter image description here

3) Maintenant, faites une nouvelle construction, et cela devrait réparer votre crash.

0
Pim de Witte