Wenn ich diese Zeile in meine Test-App, Runtime.getRuntime().exec("uiautomator dump")
, legte, wurde keine .xml-Datei gedumpt. Ich bin mir ziemlich sicher, dass ich den korrekten Standort überprüft habe.uiautomator Dump in Runtime.getRuntime(). Exec() funktioniert nicht
Ich habe versucht, meine App zu debuggen, indem Sie einen Unterbrechungspunkt setzen. Wenn es den Haltepunkt erreicht, I adb shell
am Terminal, um in das Gerät zu gelangen, und dann manuell uiautomator dump
vom Terminal ausführen, dann heißt es killed
, keine XML-Datei wurde entweder produziert.
adb shell uiautomator dump
erzeugt nur XML-Datei, wenn ich meine App getötet habe, und diesen Befehl vom Terminal ausführen.
Ist das eine Art von Erlaubnis oder Zugänglichkeitsproblem?
Siehe auch [Wenn Runtime.exec() nicht wird] (http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html) für viele gute Tipps zum korrekten Erstellen und Bearbeiten eines Prozesses. Dann ignoriere es auf 'exec' und verwende einen' ProcessBuilder' um den Prozess zu erstellen. Achten Sie darauf, einen 'String arg' in' String [] args' zu zerlegen, um Dinge wie einen Pfad mit Leerzeichen darin zu berücksichtigen. –