层次结构不适用于我的设备

zyu*_*hen 40 android

当我在终端中运行层次结构时.它可以显示它的界面,但无法连接到我的设备.它可以连接到虚拟仿真器.它在终端中提醒我,

  1. Adb拒绝了设备172.18的前向命令......未知的主机服务
  2. 丢失前进端口为172.18 .....
  3. 无法从设备172.18获取视图服务器协议版本....

它如何在层次结构查看器中显示我的设备的视图结构.任何人都可以帮助我吗?或者任何知道在哪里可以找到层次结构知识的人.提前致谢.

Rom*_*Guy 86

出于安全原因,HierarchyViewer不适用于生产版本.我编写了一个API,允许您在任何设备上使用HierarchyViewer与您的应用程序:https://github.com/romainguy/ViewServer

  • 这是同一个问题吗?00:47:21 - hierarchyviewer]缺少转发端口为015d .... [2013-06-13 00:47:21 - hierarchyviewer]无法从设备015d获取视图服务器协议版本...... [2013- 06-13 00:47:21 - ViewServerDevice]无法调试设备:asus-nexus_7-015d ..... (3认同)

wat*_*ova 23

对于任何与Android 4.1或更高版本的工作:你可以得到层次查看器通过设置环境变量的工作ANDROID_HVPROTOddm.

Mac OSX/Android Studio用户,记得从命令行启动层次结构查看器,以便它将获取环境变量.如果您使用Android Studio安装它,则可以在其中找到它/Users/<user>/Library/Android/sdk/tools

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


Sco*_*lie 19

Romain的ViewServer项目(参见答案#1)非常适用于此.我下载了代码,将项目转换为库项目,在我的应用程序中添加了一个依赖项到新的库项目,并将我的应用程序的基本Activity类从这个简单的类改为子类:

public class SimpleViewServerActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ViewServer.get(this).addWindow(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ViewServer.get(this).removeWindow(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        ViewServer.get(this).setFocusedWindow(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我可以从Android Debug Monitor的Hierarchy View连接并调试我的布局.