web-dev-qa-db-ja.com

階層ビューアがSamsung Galaxy TAB 7.0で機能しないのはなぜですか?

以前に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

また、デバッグモードで階層ビューアーを使用せず、アプリケーションを実行するだけです。ありがとう。

70

回避策を見つけました: 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のドキュメントを参照してください...

62
neworld

代わりにmonitor-toolを使用してください(Android-sdk/tools/monitor)。

デバイスに接続します。接続できない場合は、最初にEclipseを閉じます。

デバイスタブの「UIオートマトンのビュー階層をダンプ」ボタンを押します。スクリーンキャプチャボタンの横にあるもの。

APIレベル16(Android 4.1)以降で動作します。

50
RhodanV5500

HierarachyViewerは、エミュレーターおよびGoogleから購入した特別な開発者の電話でのみ使用できます。

http://groups.google.com/group/Android-developers/browse_thread/thread/b0b0af7a316ca768

上記のリンクからの引用

HierarchyViewerはユーザービルドでは動作しません(つまり、ストアで利用可能なデバイスを使用します)。これはセキュリティ上の理由によるものです。 HiearchyViewerがユーザービルドで動作する場合、デスクトップ(または場合によっては電話)上のアプリケーションは、個人情報(ログインやパスワードなど)にアクセスする可能性があります。

35
user1378730

私はマックス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の答えは役に立ちます。

20
smallsilver

HierarchyViewerがそれらにアクセスすることを許可する一般的な生産電話はほとんどありません。通常、これらの機能を備えているのは開発者の電話とエミュレーターのみです。

6
Srdjan Grubor

4.1で発生していた同様の問題Android phone.Use ViewServer コードで。

階層ビューアでチェックインする前に、adbサーバーを一度だけ再起動します。

4
Ronak Poriya

公式ドキュメント: Iの最適化 そう言った:

セキュリティを維持するために、Hierarchy Viewerは、Androidシステムの開発者バージョンを実行しているデバイスにのみ接続できます。

1
baiiu

階層ビューアでレイアウトをプロファイリング

環境変数を設定する

Android_HVPROTO=ddm

だから[andrid-sdk]/toolsフォルダーは、コマンドラインでこれを実行します。

set Android_HVPROTO=ddm
hierarchyviewer

またはset Android_HVPROTO=ddm の中に hierarchyviewer.bat

0
mortalis