Why is hierarchyviewer not working for Samsung Galaxy TAB 7.0?

AndroidGalaxy Tab

Android Problem Overview


I've used hierarachyviewer earlier, but on android emulator. It works absolutely fine when I use it on the emulator. However it does not work with Samsung Galaxy TAB 7.0, with Android 2.3.4.

This is the log, that I get

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

I'm also not using hierarchyviewer in the debug mode, just running the application. Thanks.

Android Solutions


Solution 1 - Android

I found a workaround: https://github.com/romainguy/ViewServer > ViewServer is a simple class you can use in your Android application to use the HierarchyViewer inspection tool... >

  • Verify that you need this library(newer versions of Android don't) > If you do need this library then follow these directions: >
  • Include the ViewServer library(easy directions found here)
  • Your application must require the INTERNET permission
  • The recommended way to use this API is to register activities when they are created, and to unregister them when they get destroyed: > 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); } } > Please refer to the documentation in ViewServer.java for more info...

Solution 2 - Android

Use the monitor-tool instead (android-sdk/tools/monitor).

Connect to your device. Close Eclipse first if you can't connect.

Press the "Dump view hierarchy for UI automator" button in the devices-tab. Its the one next to the screen-capture button.

Works since API Level 16 (Android 4.1).

Solution 3 - Android

You can only use HierarachyViewer on the emulator and special developer phones bought from google.

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

Quote from above link

> HierarchyViewer does not work on user builds (i.e. with devices > available in stores.) This is for security reasons. If HiearchyViewer > was able to work on user builds, any application on your desktop (or > even on the phone in some cases) could potentially get access to > private information (like logins and passwords.)

Solution 4 - Android

I'm solved question in max os

this ANDROID_HVPROTO solution is documented here:

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

then try to close Android Studio

run adb kill-server, adb start-server

and launch monitor work to me!

the answer is :

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

@ozodrukh's answer is usefull.

Solution 5 - Android

Almost no general-production phones will allow the HierarchyViewer to access them. Usually developer phones and emulators are the only ones with those features.

Solution 6 - Android

Similar issue i was having on 4.1 Android phone.Use ViewServer in your code.

Before checking in Hierarchy viewer,Just restart adb server once by doing.

Solution 7 - Android

the official documentation:Optimizing Your UI said so: > To preserve security, Hierarchy Viewer can only connect to devices running a developer version of the Android system.

Solution 8 - Android

Profile your layout with Hierarchy Viewer:

Set the environment variable

ANDROID_HVPROTO=ddm

So from [andrid-sdk]/tools folder run this in Command Line:

set ANDROID_HVPROTO=ddm
hierarchyviewer

Or put set ANDROID_HVPROTO=ddm in the hierarchyviewer.bat.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHarshal KshatriyaView Question on Stackoverflow
Solution 1 - AndroidneworldView Answer on Stackoverflow
Solution 2 - AndroidRhodanV5500View Answer on Stackoverflow
Solution 3 - Androiduser1378730View Answer on Stackoverflow
Solution 4 - AndroidsmallsilverView Answer on Stackoverflow
Solution 5 - AndroidSrdjan GruborView Answer on Stackoverflow
Solution 6 - AndroidRonak PoriyaView Answer on Stackoverflow
Solution 7 - AndroidbaiiuView Answer on Stackoverflow
Solution 8 - AndroidmortalisView Answer on Stackoverflow