2016-05-04 26 views
2

テストアプリケーションにこの行を挿入すると、 Runtime.getRuntime().exec("uiautomator dump")は.xmlファイルがダンプされませんでした。私はかなり正しい場所を確認したと確信しています。Runtime.getRuntime()。exec()でuiautomatorがダンプされない

私はブレークポイントを置いて私のアプリケーションをデバッグしようとしました。それが破損ポイントに到達すると、デバイスに入るための端末のadb shellを手に入れて、を端末から手動で実行すると、killedと表示され、.xmlファイルも生成されませんでした。

adb shell uiautomator dumpは、私がアプリケーションを終了したときに.xmlファイルを生成し、ターミナルからこのコマンドを実行します。

これは一種の許可ですか、アクセシビリティの問題ですか?

+0

関連項目[Runtime.exec()が実行されない場合](http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html)forプロセスを正しく作成して処理するためのヒント。それを無視すると 'exec'が参照され、' ProcessBuilder'を使用してプロセスが作成されます。 'String arg'を' String [] args'に分解して、その中に空白があるパスのようなものを説明します。 –

答えて

1

テストの実行中にadb shell uiautomator dumpを使用することはできません。

代わりにUiDevice.dumpWindowHierarchy(..)と電話で連絡することができます。

+1

テストの実行中にadb shell uiautomator dumpを使用できないのはなぜですか? – emilywuq

+1

フレームワークには制限があります。一度に1つのUiAutomationクライアントしか接続できません。あなたのテストが実行されているとき、それは接続を持っています。これにより、 '自動チューナーダンプ'が接続されなくなります。 –

+0

これは本当に役立ちます。説明をありがとう! – emilywuq

関連する問題