当我在终端中运行层次结构时。它可以显示它的界面,但无法连接到我的设备。它可以连接到虚拟仿真器。它在终端中提醒我,
如何在层次结构查看器中显示我的设备的视图结构。任何人都可以帮助我吗?或者 谁知道在哪里可以找到层次结构的知识。提前谢谢。
答案 0 :(得分:86)
出于安全原因,HierarchyViewer无法在生产版本上运行。我编写了一个API,允许您在任何设备上使用HierarchyViewer:https://github.com/romainguy/ViewServer
答案 1 :(得分:23)
对于使用Android 4.1或更高版本的任何人:您可以通过将环境变量ANDROID_HVPROTO
设置为ddm
来使层次结构查看器正常工作。
Mac OSX / Android Studio用户,请记住从命令行启动层次结构查看器,以便它将获取环境变量。如果您使用Android Studio安装它,则可以在/Users/<user>/Library/Android/sdk/tools
https://developer.android.com/tools/performance/hierarchy-viewer/setup.html
答案 2 :(得分:19)
Romain的ViewServer项目(参见答案#1)非常适用于此。我下载了代码,将项目转换为库项目,在我的应用程序中添加了一个依赖项到新的库项目,并将我的app的基本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);
}
}
现在我可以从Android Debug Monitor的Hierarchy View连接并调试我的布局。
答案 3 :(得分:3)
我选择后,层次结构查看器为我工作 工具 - &gt; Android - &gt;在Android Studio中启用ADB集成。
答案 4 :(得分:0)
我遇到了同样的问题,最后在http://developer.android.com/tools/performance/hierarchy-viewer/setup.html找到答案。在ViewServer连接之前,需要在开发环境中设置环境变量。
答案 5 :(得分:0)
我使用的是Android Studio 2.3.3。 结论是在这篇文章的最后。
记号: Monitor = Android设备监视器 Studio = Android Studio
在Android Studio的首选项中 - &gt; (构建,执行,部署) - &gt;即时运行 - &gt;取消选中即时运行。否则,它将提示错误消息“应用程序安装失败”,我尝试了几种方法而不取消选中即时运行,但它们都不起作用。所以现在就取消选中Instant Run。
(i)如果是生产版(运行'app'):
(1)如果我在“工具”的下拉菜单中选中“启用ADB集成”选项:
(a)直接从Studio打开监视器将起作用,视图Hierarchy将显示在监视器中,但它将提示消息“禁用ADB集成以下调试会话将关闭:app”(它表示“调试会话”,虽然我正在使用生产构建)。注意关闭监视器后,Studio将再次自动检查“启用ADB集成”选项。
(b)从Bash打开监视器将提示错误消息“ddms,无法打开所选的VM调试端口(870)”,但只需手动取消选中“启用ADB集成”选项即可解决问题并且视图层次结构将节目。
(2)如果我没有勾选“启用ADB集成”选项: 直接从Studio和Bash打开Monitor都可以正常工作,无需额外的操作。
(ii)如果是调试版本: 我必须启用ADB集成才能启动调试,因此将检查“启用ADB集成”选项。 Studio在我的手机中安装了应用程序后: 然后在(i) - (1)部分中的行为完全相同。换句话说,对于View Hierarchy目的,启动调试版本与启动生产版本并选中“启用ADB集成”选项相同。
总之:要安装应用程序,需要取消选中“即时运行”(请参阅报告顶部的说明)。要在监视器中显示“查看层次结构”,需要取消选中“启用ADB集成”。从bash和Studio打开Monitor都可以正常工作。 Debug Build和production build都可以工作。