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

当我在terminal运行层次结构。 它可以显示它的界面,但不能连接到我的设备,并可以连接到虚拟仿真器。 这样在terminal上提醒我,

  1. Adb拒绝了设备172.18 ……未知主机服务的转发命令
  2. 缺less转发端口为172.18 …..
  3. 无法从设备172.18获取视图服务器协议版本….

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

出于安全原因,HierarchyViewer不适用于生产版本。 我写了一个API,可以让你在任何设备上使用HierarchyViewer和你的应用程序: https : //github.com/romainguy/ViewServer

对于任何使用Android 4.1或更高版本的人员,您可以通过将环境variablesANDROID_HVPROTO设置为ddm来使Hierarchy Viewer工作。

Mac OSX / Android Studio用户,请记住从命令行启动层次结构查看器,以便获取环境variables。 如果您使用Android Studio安装,您可以在/Users/<user>/Library/Android/sdk/toolsfind它

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

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

现在我可以从Androiddebugging监视器的层次结构视图进行连接,并debugging我的布局。

一旦我select了工具 – > Android – >在Android Studio中启用ADB集成,层次结构查看器为我工作。

我有同样的问题,并最终在http://developer.android.com/tools/performance/hierarchy-viewer/setup.htmlfind答案。; 在ViewServer连接之前,需要在开发环境中设置一个环境variables。

我正在使用Android Studio 2.3.3。 结论是在这篇文章的结尾。

表示法:监视器= Android设备监视器工作室= Android Studio

在Android Studio的首选项 – >(构build,执行,部署) – >即时运行 – >取消选中即时运行。 否则,它会提示错误消息“应用程序安装失败”,我尝试了几种方法,而没有取消选中即时运行,但没有一个工作。 所以现在就取消即时运行。

(i)如果是生产版本(运行“应用程序”):

(1)如果我从“工具”的下拉菜单中勾选了“启用ADB集成”选项:

(a)从Studio直接打开监视器将工作和视图层次结构将显示在监视器,但它会提示消息“禁用ADB集成以下debugging会话将被closures:应用程序”(它说“debugging会话”,虽然我使用生产版本)。 注意closures监视器后,Studio的“Enable ADB Integration”选项将自动再次被选中。

(b)从Bash打开监视器会提示错误消息“ddms,无法打开选定的虚拟机debugging端口(870)”,但只需手动取消选中“启用ADB集成”选项将解决问题,并显示查看层次结构。

(2)如果我没有勾选“启用ADB集成”选项:直接从Studio和Bash打开监视器都可以工作,不需要额外的操作。

(ii)如果它是debugging构build:我必须启用ADB集成才能启动debugging,因此将选中“启用ADB集成”选项。 Studio在我的手机中安装了应用程序后:那么在(i) – (1)部分中的行为完全相同。 换句话说,对于“查看层次结构”目的,启动debugging构build与选中“启用ADB集成”选项来启动生产构build相同。

总之:要安装应用程序,需要取消选中“即时运行”(请参阅​​报告顶部的说明)。 要在监视器中显示View Hierarchy,需要取消选中“启用ADB集成”。 打开监视器从bash和从工作室都工作。 debugging构build和生产两个工作。