我必须在 Linux 平台上运行的模拟器设备上运行意图广播。我正在使用 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");
}
但我在控制台输出中得到的是:
无法绑定(bind) tcp:5037
adb
服务器已过期。杀...
最佳答案
adb server is out of date. killing...
可能有两个 adb
二进制文件。 java 程序可能从您的模拟器以外的其他位置获取 adb
。您可以检查您的 PC 中有多少个 adb 二进制文件。
在您的终端中尝试以下并仅维护一个 adb 二进制文件 -
which adb
- 查看当前 adb
正在运行的文件夹。
找到 adb
,然后从您的 sdk 文件夹中删除 adb
以外的 adb
。
关于java - 使用java在linux上触发adb命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482548/