Android 为什么hierarchyviewer不适用于三星Galaxy TAB 7.0?
我之前使用过hierarachyviewer,但是在android模拟器上。当我在模拟器上使用它时,它工作得非常好。但是,它不适用于三星Galaxy TAB 7.0和Android 2.3.4 这是我得到的日志Android 为什么hierarchyviewer不适用于三星Galaxy TAB 7.0?,android,galaxy-tab,Android,Galaxy Tab,我之前使用过hierarachyviewer,但是在android模拟器上。当我在模拟器上使用它时,它工作得非常好。但是,它不适用于三星Galaxy TAB 7.0和Android 2.3.4 这是我得到的日志 11:04:22 E/hierarchyviewer: Unable to get view server version from device 303599 64881B00EC 11:04:22 E/hierarchyviewer: Unable to get view serve
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
我也没有在调试模式下使用hierarchyviewer,只是在运行应用程序。
谢谢。您只能在从谷歌购买的emulator和special developer手机上使用HierarachyViewer 从上面的链接引用 HierarchyViewer不适用于用户构建(即使用设备 这是出于安全考虑。如果教主 能够处理用户构建、桌面上的任何应用程序(或 甚至在某些情况下通过电话)也有可能访问 私人信息(如登录名和密码。)
几乎没有一部普通生产手机允许HierarchyViewer访问它们。通常,开发人员手机和模拟器是唯一具有这些功能的设备。我找到了一个解决方法: ViewServer是一个简单的类,您可以在Android应用程序中使用它来使用HierarchyViewer检查工具
- 验证您是否需要此库()
- 包括ViewServer库(可轻松找到方向)
- 您的应用程序必须具有INTERNET权限
- 建议使用此API的方法是在创建活动时注册活动,并在销毁活动时注销活动:
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); } }
改用监视器工具(
android sdk/tools/monitor
)
连接到您的设备。如果无法连接,请先关闭Eclipse
按“设备”选项卡中的“UI自动机的转储视图层次结构”按钮。它是屏幕捕获按钮旁边的一个
从API级别16(Android 4.1)开始工作。类似于我在4.1 Android手机上遇到的问题。请在代码中使用
在检查Hierarchy viewer之前,只需重新启动adb服务器一次即可。我在max os中解决了这个问题 此ANDROID_HVPROTO解决方案记录如下: 然后尝试关闭Android Studio 运行adb终止服务器、adb启动服务器 和我一起工作吧 答案是:
@ozodrukh的回答很有用。官方文件:如是说: 为了保护安全性,Hierarchy Viewer只能连接到运行Android系统开发者版本的设备 : 设置环境变量
ANDROID_HVPROTO=ddm
因此,从[andridsdk]/tools
文件夹中,在命令行中运行以下命令:
set ANDROID_HVPROTO=ddm
hierarchyviewer
或者在
hierarchyviewer.bat
中设置ANDROID\u HVPROTO=ddm,谢谢用户1378730!!也许,我需要买一个。:)谢谢Srdjan!!你的回答很有帮助。。。。如果您正在开发的设备不是开发者手机(即,您是从商店或运营商网络购买的),这是一种方法。太棒了,谢谢。您只需要在项目源代码中添加太多的ViewServer.java,并在代码中添加几个方法即可启用ViewServer。还可以将Internet权限添加到清单中。如果您的所有活动都有基本活动类,则很容易实现。也可以从Eclipse中的DDMS透视图中获得。这根本不是同一个工具。哇,这个工具应该出现在所有Android入门文档中。看来三星对Android内核的定制有点太多了!我在Galaxy Tab中的GSM功能也有问题。可能是Hi small silver的副本,如果您认为这是解决方案,请在ozodurkh的答案中添加报价。这将保持您的有效,即使该URL某一天变得无效嘿,怎么做?“在开发计算机上设置环境变量ANDROID_HVPROTO=ddm。”