2016-04-07 7 views
0

Ich muss eine Absicht Broadcast auf meinem Emulator-Gerät auf der Linux-Plattform ausführen. Ich benutze Java zum Codieren. unten ist die Code-Zeile i in einem Versuch geschrieben haben, die gleicheadb Befehl trigger auf Linux mit Java

Process p = Runtime.getRuntime().exec(new String[]{"adb", "shell", "am", "broadcast", "-a", "\"<package name>.SWITCH_ENVIRONMENT\"", "--es ENVIRONMENT", "\""+Build+"\"" }); 
Thread.sleep(200); 
p.waitFor(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line = ""; 
while((line = reader.readLine())!=null){ 
    System.out.println(line+"\n"); 
} 

Aber alles, was ich in meiner Konsole Ausgabe erhalten zu erreichen ist:

nicht tcp:5037

adb Server binden veraltet . Töten ...

+0

Ihr Problem hat nichts mit Ihrem 'Java'-Code zu tun. Stellen Sie sicher, dass Ihr 'adb'-Befehl von der Befehlszeile zuerst funktioniert –

+0

Hallo Alex, danke für den Vorschlag. Das Problem wurde behoben. Das Problem war das Vorhandensein von zwei adb-Binärdateien auf dem Linux-Rechner –

Antwort

0

adb-Server ist veraltet. Töten ...

Wahrscheinlich gibt es zwei adb binär. Java-Programm könnte adb von einem anderen Ort als Ihrem Emulator nehmen. Sie können überprüfen, wie viele adb-Binärdateien in Ihrem PC sind.

versuchen unten in Ihrem Terminal und nur eine adb binär halten -

which adb - aus welchem ​​Ordner läuft adb derzeit zu sehen.

locate adb, und entfernen Sie adb anders als adb aus Ihrem SDK-Ordner.