2016-04-07 11 views
0

Linuxプラットフォームで動作するエミュレータデバイスでインテントブロードキャストを実行する必要があります。私はコーディングのためにJavaを使用しています。以下、私は同じLinuxのadbコマンドトリガー

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"); 
} 

を達成しようとする試みに書かれている。しかし、私は私のコンソール出力に入るすべてがあるコードの行されます。

tcp:5037

adbサーバーをバインドすることはできませんが古くなっています。殺す...

+0

あなたの問題はあなたの 'java'コードとは関係ありません。あなたの 'adb'コマンドがコマンドラインから最初に動作することを確認してください –

+0

こんにちはアレックス、提案のおかげで。これを修正しました。問題は、Linuxマシン上に2つのadbバイナリが存在することでした –

答えて

0

adbサーバーが古くなっています。殺している...

恐らく2つのadbバイナリがあります。 Javaプログラムがエミュレータ以外の別の場所からadbを取得している可能性があります。お使いのPCにいくつのadbバイナリがあるかを確認できます。

は端末に以下試してみて、一つだけADBバイナリ維持 - そこから現在adbが実行されているフォルダを確認するには -

which adbを。

locate adbadbadbをsdkフォルダから削除してください。