2012-05-18 12 views
66

以前はhierarachyviewerを使っていましたが、アンドロイドエミュレータでは使用しました。私がエミュレータで使用すると、それは絶対にうまく動作します。しかし、Android 2.3.4のSamsung Galaxy TAB 7.0では動作しません。サムスンギャラクシーTAB 7.0で階層ビューアが動作しないのはなぜですか?

これは、私は私もちょうどアプリケーションを実行、デバッグモードでhierarchyviewer使用していないよ

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 

を得ることを、ログです。おかげさまで

+0

サムスンはアンドロイドカーネルをあまりにもカスタマイズしたようです!私はギャラクシータブのGSM機能にも問題があります。 – VSB

+0

[階層が私のデバイスで動作しない](http://stackoverflow.com/questions/7801427/hierarchy-is-not-working-for-my-device) – ForceMagic

答えて

61

私は回避策が見つかりました:https://github.com/romainguy/ViewServer

ViewServerあなたはHierarchyViewer検査ツールを使用するためにあなたのAndroidのアプリケーションで使用できる単純なクラスです...

あなたはこのライブラリを必要とした場合は、これらの指示に従ってください:

  • は(簡単な方向はhereを見つけた)
  • あなたのアプリケーションは、それらが作成されるときに、このAPIを使用する推奨方法は、活動を登録することでINTERNET権限
  • を要求しなければならない、とするとき、それらの登録を解除するViewServerライブラリを含めます彼らは破壊されます:

    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のドキュメントを参照してください...

+4

....デベロッパーの電話ではないデバイス(つまり、店舗や通信事業者のネットワークから購入したデバイス)で開発している場合は、これが方法です。驚くばかり。 – dell116

+0

ありがとうございます。プロジェクトのソースにはViewServer.javaも必要で、ViewServerを有効にするコードはほとんどありません。また、マニフェストにインターネット許可を追加します。 – VSB

+0

すべてのアクティビティに基本アクティビティクラスがある場合は、実装が非常に簡単です。 – neworld

35

エミュレータとGoogleから購入した特別な開発者向け電話でのみHierarachyViewerを使用できます。

HierarchyViewerユーザで動作しないリンク上から

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

見積もり(すなわち店舗で利用可能なデバイス 有する。)これは、セキュリティ上の理由で構築します。 HiearchyViewer は、ユーザーのビルドで作業することができた場合は、(いくつかのケースでも、携帯電話上または )、デスクトップ上の任意のアプリケーションは、潜在的に(ログインとパスワードのような。) 個人情報へのアクセスを得ることができる

+0

ありがとうuser1378730 !!たぶん、私は1つ購入する必要があります。 :) – FireAndIce

+7

CyanogenModファームウェアは箱の外で動作するようです – max4ever

6

ほとんどなし一般制作用の電話機はHierarchyViewerがそれらにアクセスできるようにします。通常、開発者向けの携帯電話やエミュレータは、これらの機能を備えた唯一のものです。

+0

ありがとうSrdjan !!あなたの答えは役に立ちました。 :) – FireAndIce

49

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

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

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

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

+13

EclipseのDDMSパースペクティブからも利用できます。 – AndiDog

+6

これは全く同じツールではありません。 – Teovald

+0

うわー、このツールはAndroid用のすべての開始用ドキュメントにある必要があります。 – ibgib

3

私は4.1のAndroid phone.Use ViewServerあなたのコードで使用していた同様の問題。

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

+1

これは本当に質問に答えません。別の質問がある場合は、[Ask Question](http://stackoverflow.com/questions/ask)をクリックして質問することができます。十分な[評判](http://stackoverflow.com/help/)があれば、[賞金を追加する](http://stackoverflow.com/help/privileges/set-bounties)でもこの質問にもっと注意を払うことができます何が評判か)。 –

+0

あなたの情報をありがとう.... !!! –

18

私はこのANDROID_HVPROTOソリューションがここに文書化されている最大のOSに質問

解決しています:

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

、その後のAndroidメーカー

実行ADBキル・サーバー、ADBスタートを閉じよう-server

と起動モニターの仕事が私に!

答えは次のとおりです。ozodrukhの答え@

https://github.com/romainguy/ViewServer/issues/14#issuecomment-75354479

が便利です。

+1

こんにちは、あなたがそれが解決策だと思うなら、ozodurkhの答えを引用符で追加してください。そのURLがいつか無効になっても有効です。 – NSNoob

+0

私はちょうど、おかげで答えを再編集します! – smallsilver

+0

どうすればいいですか? "環境変数ANDROID_HVPROTO = ddmを開発マシンに設定してください。" – murt

1

公式ドキュメント:Optimizing Your UIはそう言った:

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

関連する問題