【问题标题】:Programmatically executing adb install command in java在 java 中以编程方式执行 adb install 命令
【发布时间】:2016-03-24 23:35:56
【问题描述】:

我正在尝试通过 Java 应用程序将 android 应用程序安装到设备中。

使用以下命令 - Runtime.getRuntime().exec("adb install /apps/testapp.apk");

我面临以下错误 - 无法运行程序“adb”:错误=2,没有这样的文件或目录

我应该使用 ProcessBuilder 来启动命令执行吗?

【问题讨论】:

  • 我怀疑这是 PATH 问题;您是否尝试过使用 adb 的完整路径,即 Runtime.getRuntime().exec("/path/to/androidsdk/tools/adb install /apps/testapp.apk");
  • exec()中不需要使用adb参数。 Here 可以找到解释为什么不这样做。请改用pm install app.apk。尽管以编程方式执行命令并非易事。您可能需要先获取su

标签: java android command adb


【解决方案1】:

我认为问题可能是

  1. adb 未设置环境变量。您可以尝试使用完整路径
  2. apk 的路径应该是相对于 java 项目的 CLASSPATH 或完整路径

【讨论】:

    【解决方案2】:

    使用绝对文件路径,如果已安装,请使用 -r 选项重新安装应用程序:
    Runtime.getRuntime().exec("adb install -r <strong>_HERE_AbsoluteFilePath_</strong>");
    如果您将等待执行:

    String[] commands = new String[3];
    commands[0] = "adb";
    commands[1] = "install";
    commands[2] = "-r" ;//如果已安装则重新安装
    commands[3] = ___HERE_AbsoluteFilePath___;
    Process p1 = Runtime.getRuntime().exec(commands, null);
    p1.waitFor();

    PS:如果无法在控制台窗口或终端中运行 adb - 使用 adb 的绝对文件路径或包含环境变量的路径。

    【讨论】:

      猜你喜欢
      • 2016-04-03
      • 2012-08-13
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2013-08-14
      • 1970-01-01
      相关资源
      最近更新 更多