2 votes

Le débogage de Flutter génère des messages différents dans la console

Je reçois beaucoup de messages bizarres lors du débogage de mon application flutter sur mon OnePlus 6. Les messages apparaissent lorsque je clique sur des boutons, swipe et ainsi de suite. Je suis sur Android Pie.

Quelques-uns des messages :

E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
W/1.gpu   (10995): type=1400 audit(0.0:2806794): avc: denied { read } for 
name="u:object_r:vendor_default_prop:s0" dev="tmpfs" ino=21671 
scontext=u:r:untrusted_app_27:s0:c512,c768 
tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
E/libc    (10995): Access denied finding property 
"vendor.debug.egl.swapinterval"
W/1.gpu   (10995): type=1400 audit(0.0:2806805): avc: denied { read } for 

Comment puis-je m'en débarrasser, l'application semble fonctionner correctement. Il est difficile de lire les messages print() avec tout ce fatras.

5voto

Arto Bendiken Points 591

La solution consiste à utiliser le moteur de rendu logiciel de Flutter, qui élimine ces erreurs au prix d'une réduction des performances graphiques par rapport au moteur de rendu OpenGL à accélération matérielle par défaut de Flutter :

$ flutter run --enable-software-rendering

Pour être clair, il ne s'agit pas d'un bug de Flutter. Il s'agit d'un problème avec les bibliothèques système ( libEGL , libgralloc ?) sur Android Pie sur le OnePlus 6 (et peut-être le Google Pixel 3), et nécessite finalement une correction par le fournisseur de l'appareil et/ou Google. Il y a quelques indications que l'installation des dernières mises à jour du système pourrait avoir corrigé ce problème pour certains utilisateurs, du moins, à partir de la fin octobre 2018.

Sur la base d'une s'engager qui prétend corriger le même problème sur le nouvel appareil Pixel 3 XL de Google (nom de code "crosshatch"), le problème sous-jacent semble être qu'Android Pie lui-même ou les personnalisations des vendeurs d'Android ont introduit une nouvelle dépendance sur le système d'exploitation de l'appareil Pixel 3 XL (nom de code "crosshatch"). vendor.debug.egl.swapinterval mais l'accès à cette propriété a été refusé par la politique de sécurité. La solution consiste à modifier la politique de sécurité pour permettre à l'animation de démarrage et aux applications d'accéder à cette propriété.

Et qu'est-ce que vendor.debug.egl.swapinterval ? Il contrôle le taux de rafraîchissement de l'écran. En citant la documentation du groupe Khronos pour le logiciel eglSwapInterval API, cet intervalle :

Spécifie le nombre minimum d'images vidéo affichées avant qu'une permutation de la mémoire tampon ne se produise.

Comme le montre une recherche rapide sur les forums XDA, les moddeurs ont été réglage ce paramètre depuis des années.

3voto

izzer Points 31

Si cela vous arrive maintenant (mars 2019) avec un appareil OnePlus (peut-être même d'autres appareils) après la mise à niveau Flutter 1.2.1, vous pouvez utiliser la solution de contournement "--enable-software-rendering" comme indiqué dans la réponse acceptée par Arto Bendiken ou celle-ci :

Examinez votre build.gradle situé dans le dossier de votre projet ($PROJECT_FOLDER/Android/app/) et regardez le fichier compileSdkVersion y targetSdkVersion . Si ces chiffres sont fixés à 28 les abaisser à 27 (ou moins, si vous le souhaitez ou si vous en avez besoin). Flutter 1.2.1 génère des projets avec ces variables réglées sur 28 (Android 9 Pie).

Explication :
Certains utilisateurs ont déclaré que la mise à jour vers des versions plus récentes de la ROM avait résolu le problème pour eux. J'utilise cet appareil :

Appareil : OnePlus 6T (ONEPLUS A6013)
Construire : A6013_41_190123
OxygenOS : 9.0.12

Quelqu'un a écrit que cela avait été corrigé pour lui dans la version 9.0.3, qui est plus ancienne que ma version 9.0.12.

Le problème est que j'ai utilisé cet appareil avec Flutter 1.0.0 sans aucun problème et qu'après la mise à jour de Flutter 1.2.1 (et la génération de nouveaux projets) cela a commencé à se produire. Les projets plus anciens fonctionnaient toujours sans ce problème, j'ai donc vérifié quelques fichiers pour les différences et j'ai découvert que build.gradle diffère. En d'autres termes, Flutter 1.2.1 cible Android 9 Pie par défaut. C'est probablement lié à OnePlus, car j'ai essayé de faire fonctionner l'application sur un Moto G sous Android 8 et le problème n'était pas présent. (Même avec compile/targetSdkVersion à 28).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X