Why is hierarchyviewer not working for Samsung Galaxy TAB 7.0?
AndroidGalaxy TabAndroid 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
.