以前にhierarachyviewerを使用しましたが、Androidエミュレーターで使用します。エミュレーターで使用すると、まったく問題なく動作します。ただし、Samsung 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 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
また、デバッグモードで階層ビューアーを使用せず、アプリケーションを実行するだけです。ありがとう。
回避策を見つけました: https://github.com/romainguy/ViewServer
ViewServerは、AndroidアプリケーションでHierarchyViewer検査ツールを使用するために使用できる単純なクラスです...
- このライブラリが必要であることを確認してください( Android do n't )の新しいバージョン)
このライブラリが必要な場合は、次の指示に従ってください。
- ViewServerライブラリを含めます(簡単な指示が見つかりました ここ )
- アプリケーションには、インターネットアクセス許可が必要です。
この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); } }
詳細については、ViewServer.Javaのドキュメントを参照してください...
代わりにmonitor-toolを使用してください(Android-sdk/tools/monitor
)。
デバイスに接続します。接続できない場合は、最初にEclipseを閉じます。
デバイスタブの「UIオートマトンのビュー階層をダンプ」ボタンを押します。スクリーンキャプチャボタンの横にあるもの。
APIレベル16(Android 4.1)以降で動作します。
HierarachyViewerは、エミュレーターおよびGoogleから購入した特別な開発者の電話でのみ使用できます。
http://groups.google.com/group/Android-developers/browse_thread/thread/b0b0af7a316ca768
上記のリンクからの引用
HierarchyViewerはユーザービルドでは動作しません(つまり、ストアで利用可能なデバイスを使用します)。これはセキュリティ上の理由によるものです。 HiearchyViewerがユーザービルドで動作する場合、デスクトップ(または場合によっては電話)上のアプリケーションは、個人情報(ログインやパスワードなど)にアクセスする可能性があります。
私はマックスOSで質問を解決しました
このAndroid_HVPROTOソリューションは次のとおりです。
http://developer.Android.com/tools/performance/hierarchy-viewer/setup.html
その後、Android Studioを閉じてみてください
adb kill-server、adb start-serverを実行します
モニター作業を開始してください!
答えは:
https://github.com/romainguy/ViewServer/issues/14#issuecomment-75354479
@ozodrukhの答えは役に立ちます。
HierarchyViewerがそれらにアクセスすることを許可する一般的な生産電話はほとんどありません。通常、これらの機能を備えているのは開発者の電話とエミュレーターのみです。
4.1で発生していた同様の問題Android phone.Use ViewServer コードで。
階層ビューアでチェックインする前に、adbサーバーを一度だけ再起動します。
公式ドキュメント: Iの最適化 そう言った:
セキュリティを維持するために、Hierarchy Viewerは、Androidシステムの開発者バージョンを実行しているデバイスにのみ接続できます。
環境変数を設定する
Android_HVPROTO=ddm
だから[andrid-sdk]/tools
フォルダーは、コマンドラインでこれを実行します。
set Android_HVPROTO=ddm
hierarchyviewer
またはset Android_HVPROTO=ddm
の中に hierarchyviewer.bat
。