Pourquoi hierarchyviewer ne fonctionne-t-il pas pour Samsung Galaxy TAB 7.0?

J’ai utilisé hierarachyviewer plus tôt, mais sur un émulateur Android. Cela fonctionne parfaitement quand je l’utilise sur l’émulateur. Cependant, il ne fonctionne pas avec Samsung Galaxy TAB 7.0, avec Android 2.3.4.

Ceci est le journal que je reçois

11:04:22 E/hierarchyviewer: Unable to get view server version from device 303599 64881B00EC 11:04:22 E/hierarchyviewer: Unable to get view server protocol version from devi ce 30359964881B00EC 11:04:24 E/hierarchyviewer: Unable to debug device 30359964881B00EC 11:05:05 E/hierarchyviewer: Unable to get view server version from device 303599 64881B00EC 11:05:05 E/hierarchyviewer: Unable to get view server protocol version from devi ce 30359964881B00EC 11:05:07 E/hierarchyviewer: Unable to debug device 30359964881B00EC 11:09:38 E/hierarchyviewer: Unable to get view server version from device 303599 64881B00EC 11:09:38 E/hierarchyviewer: Unable to get view server protocol version from devi ce 30359964881B00EC 11:09:40 E/hierarchyviewer: Unable to debug device 30359964881B00EC 

Je n’utilise pas non plus hierarchyviewer en mode débogage, il suffit d’exécuter l’application. Merci.

J’ai trouvé une solution de contournement: https://github.com/romainguy/ViewServer

ViewServer est une classe simple que vous pouvez utiliser dans votre application Android pour utiliser l’outil d’inspection HierarchyViewer …

  • Vérifiez que vous avez besoin de cette bibliothèque (les nouvelles versions d’Android ne le font pas )

Si vous avez besoin de cette bibliothèque, suivez ces instructions:

  • Inclure la bibliothèque ViewServer (directions simples trouvées ici )
  • Votre demande doit exiger la permission INTERNET
  • La méthode recommandée pour utiliser cette API consiste à enregistrer les activités lors de leur création et à les désenregistrer lorsqu’elles sont détruites:

     public class MyActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set content view, etc. ViewServer.get(this).addWindow(this); } public void onDestroy() { super.onDestroy(); ViewServer.get(this).removeWindow(this); } public void onResume() { super.onResume(); ViewServer.get(this).setFocusedWindow(this); } } 

Veuillez vous référer à la documentation dans ViewServer.java pour plus d’informations …

Utilisez plutôt le moniteur-outil ( android-sdk/tools/monitor ).

Connectez-vous à votre appareil. Fermez d’abord Eclipse si vous ne pouvez pas vous connecter.

Cliquez sur le bouton “Dump view hierarchy for UI automator” dans l’onglet devices. C’est celui à côté du bouton de capture d’écran.

Fonctionne depuis le niveau 16 de l’API (Android 4.1).

Vous pouvez uniquement utiliser HierarachyViewer sur l’émulateur et les téléphones de développeur spéciaux achetés sur Google.

http://groups.google.com/group/android-developers/browse_thread/thread/b0b0af7a316ca768

Citation du lien ci-dessus

HierarchyViewer ne fonctionne pas sur les builds utilisateur (c.-à-d. Avec les périphériques disponibles dans les magasins). Ceci pour des raisons de sécurité. Si HiearchyViewer était capable de travailler sur des versions utilisateur, toute application sur votre bureau (ou même sur le téléphone dans certains cas) pourrait potentiellement accéder à des informations privées (telles que les connexions et les mots de passe).

Je suis résolu la question dans max os

cette solution ANDROID_HVPROTO est documentée ici:

http://developer.android.com/tools/performance/hierarchy-viewer/setup.html

puis essayez de fermer Android Studio

exécuter adb kill-server, adb start-server

et lancez le travail de moniteur pour moi!

la réponse est :

https://github.com/romainguy/ViewServer/issues/14#issuecomment-75354479

La réponse de @ ozodrukh est utile.

Presque aucun téléphone de production générale ne permettra à HierarchyViewer d’y accéder. Les téléphones et les émulateurs de développeur sont généralement les seuls à posséder ces fonctionnalités.

Problème similaire que j’avais sur le téléphone Android 4.1. Utilisez ViewServer dans votre code.

Avant de vérifier dans le visualiseur de hiérarchie, redémarrez simplement le serveur adb une fois.

la documentation officielle: Optimisation Votre interface utilisateur dit:

Pour préserver la sécurité, Hierarchy Viewer peut uniquement se connecter aux périphériques exécutant une version développeur du système Android.