it-swarm.com.de

Warum funktioniert der Hierarchie-Viewer für Samsung Galaxy TAB 7.0 nicht?

Ich habe früher Hierarachyviewer verwendet, aber auf Android-Emulator. Es funktioniert absolut einwandfrei, wenn ich es auf dem Emulator verwende. Es funktioniert jedoch nicht mit Samsung Galaxy TAB 7.0 und Android 2.3.4. 

Dies ist das Protokoll, das ich bekomme

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

Ich verwende hierarchyviewer auch nicht im Debug-Modus, sondern führe einfach die Anwendung aus.

68

Ich habe eine Problemumgehung gefunden: https://github.com/romainguy/ViewServer

ViewServer ist eine einfache Klasse, die Sie in Ihrer Android-Anwendung verwenden können, um das HierarchyViewer-Inspektionstool zu verwenden ...

Wenn Sie diese Bibliothek benötigen, folgen Sie diesen Anweisungen:

  • Fügen Sie die ViewServer-Bibliothek hinzu (einfache Wegbeschreibung hier )
  • Ihre Anwendung muss die Erlaubnis INTERNET erfordern
  • Die empfohlene Methode zur Verwendung dieser API besteht darin, Aktivitäten zu registrieren, wenn sie erstellt werden, und deren Registrierung aufzuheben, wenn sie zerstört werden:

    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);
        }
    }
    

Weitere Informationen finden Sie in der Dokumentation zu ViewServer.Java ...

61
neworld

Verwenden Sie stattdessen das Monitor-Tool (Android-sdk/tools/monitor).

Verbinden Sie sich mit Ihrem Gerät. Schließen Sie zuerst Eclipse, wenn Sie keine Verbindung herstellen können.

Klicken Sie auf der Geräte-Registerkarte auf die Schaltfläche "Dump-Ansicht-Hierarchie für UI-Automator". Es ist der neben der Schaltfläche für die Bildschirmaufnahme.

Arbeitet seit API Level 16 (Android 4.1).

50
RhodanV5500

Sie können HierarachyViewer nur mit dem Emulator und speziellen bei Google erworbenen Entwicklertelefonen verwenden.

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

Zitat aus dem obigen Link

HierarchyViewer funktioniert nicht bei Benutzer-Builds (d. H. Mit Geräten In Geschäften.). Dies geschieht aus Sicherheitsgründen. Wenn HiearchyViewer Wenn Sie an Benutzer-Builds arbeiten konnten, kann jede Anwendung auf Ihrem Desktop (oder .__ sogar in einigen Fällen auf dem Telefon) möglicherweise Zugriff auf .__ erhalten. private Informationen (wie Login und Passwort). 

35
user1378730

Ich habe die Frage in max os gelöst

diese Android_HVPROTO-Lösung ist hier dokumentiert:

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

versuchen Sie dann, Android Studio zu schließen

führen Sie adb kill-server und adb start-server aus

und starte Monitorarbeit für mich!

die Antwort ist :

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

@ ozodrukhs Antwort ist nützlich.

20
smallsilver

Fast keine Telefone für die allgemeine Produktion können mit dem HierarchyViewer auf sie zugreifen. Normalerweise sind nur Entwickler-Telefone und Emulatoren mit diesen Funktionen ausgestattet.

6
Srdjan Grubor

Ein ähnliches Problem hatte ich auf 4.1 Android Phone.Verwenden Sie ViewServer in Ihrem Code.

Bevor Sie den Hierarchie-Viewer einchecken, starten Sie einfach den ADB-Server einmal neu.

3
Ronak Poriya

die offizielle Dokumentation: Optimierung der Benutzeroberfläche sagte: 

Um die Sicherheit zu gewährleisten, kann der Hierarchy Viewer nur Verbindungen zu Geräten herstellen, auf denen eine Entwicklerversion des Android-Systems ausgeführt wird.

1
baiiu

Profiliere dein Layout mit Hierarchie-Viewer :

Legen Sie die Umgebungsvariable fest

Android_HVPROTO=ddm

Also aus dem [andrid-sdk]/tools Ordner in der Kommandozeile ausführen:

set Android_HVPROTO=ddm
hierarchyviewer

Oder set Android_HVPROTO=ddm in hierarchyviewer.bat eingeben.

0
mortalis