java - 使用java在linux上触发adb命令

标签 java linux adb

我必须在 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/

相关文章:

java - 沙盒静态字段

Java - 了解私有(private)最终自定义类型的返回类型

java - 特殊的非 ASCII 字符显示为 ?打印 ArrayList 时

java - Spring MVC HTTP 状态 400 -

linux - 在函数中调用服务两次?

php - 在远程 Linux 服务器上启动和停止服务

linux - Linux的“别名”和“哪个”

android - 如何使用 adb pull 从 Android 复制选定的文件

android - 如何为任何 Android 设备安装 ADB 驱动程序?

android - ADB 服务器在 macOS 上没有 ACK