Search code examples
androidgalaxy-tab

Why is hierarchyviewer not working for Samsung Galaxy TAB 7.0?


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.


Solution

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

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