web-dev-qa-db-fra.com

Pourquoi la visionneuse hiérarchique ne fonctionne-t-elle pas pour Samsung Galaxy TAB 7.0?

J'ai utilisé hierarachyviewer auparavant, mais sur un émulateur Android. Cela fonctionne parfaitement si je l’utilise sur l’émulateur. Cependant, cela 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 hierarchieviewer en mode débogage, je lance simplement l'application ..__ Merci.

68

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 ...

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

  • Inclure la bibliothèque ViewServer (instructions faciles trouvées ici )
  • Votre application doit nécessiter l'autorisation 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 ...

61
neworld

Utilisez plutôt l'outil moniteur (Android-sdk/tools/monitor).

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

Appuyez sur le bouton "Afficher la hiérarchie des vues pour l’automatisation de l’UI" 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).

50
RhodanV5500

Vous ne pouvez utiliser HierarachyViewer que 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 versions utilisateur (c'est-à-dire 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 avoir accès à informations privées (comme les identifiants et les mots de passe.) 

35
user1378730

Je suis résolu 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

lancer 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.

20
smallsilver

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

6
Srdjan Grubor

Un 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, il suffit de redémarrer le serveur adb une fois.

3
Ronak Poriya

la documentation officielle: Optimisation de votre interface utilisateur a déclaré: 

Pour préserver la sécurité, Hierarchy Viewer ne peut se connecter qu’aux appareils exécutant une version développeur du système Android.

1
baiiu

Profilez votre mise en page avec Hierarchy Viewer :

Définir la variable d'environnement

Android_HVPROTO=ddm

Donc, à partir du dossier [andrid-sdk]/tools, lancez ceci en ligne de commande:

set Android_HVPROTO=ddm
hierarchyviewer

Ou mettez set Android_HVPROTO=ddm dans le hierarchyviewer.bat.

0
mortalis