Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中以编程方式执行adb install命令_Java_Android_Command_Adb - Fatal编程技术网

在java中以编程方式执行adb install命令

在java中以编程方式执行adb install命令,java,android,command,adb,Java,Android,Command,Adb,我正在尝试从Java应用程序将android应用程序安装到设备中 使用以下命令- Runtime.getRuntime().exec(“adb install/apps/testapp.apk”) 我面临以下错误- 无法运行程序“adb”:错误=2,没有这样的文件或目录 是否必须使用ProcessBuilder来启动命令执行?我认为问题可能是 adb未设置环境变量。您可以尝试使用完整路径 apk的路径应该相对于java项目类路径或完整路径 使用绝对文件路径,如果已经安装,则使用-r选项重新安装应

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

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

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

是否必须使用ProcessBuilder来启动命令执行?

我认为问题可能是

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

  • 使用绝对文件路径,如果已经安装,则使用-r选项重新安装应用程序:
    Runtime.getRuntime().exec(“adb安装-r\u此处\u绝对文件路径
    如果您将等待执行:

    String[] commands = new String[3];
    commands[0] = "adb";
    commands[1] = "install";
    commands[2] = "-r";//reinstall if already installed
    commands[3] = ___HERE_AbsoluteFilePath___;
    Process p1 = Runtime.getRuntime().exec(commands, null);
    p1.waitFor(); 字符串[]命令=新字符串[3]
    命令[0]=“adb”
    命令[1]=“安装”
    命令[2]=“-r”//如果已安装,请重新安装命令[3]=\uuuuuuu此处\u绝对文件路径\uuuuuuuuu
    进程p1=Runtime.getRuntime().exec(命令,null)
    p1.waitFor();
    PS:如果无法在控制台窗口或终端中运行adb,请使用adb的绝对文件路径或包含环境变量的路径。

    我怀疑这是路径问题;您是否尝试过使用adb的完整路径,即
    Runtime.getRuntime().exec(“/path/to/androidsdk/tools/adb install/apps/testapp.apk”)?无需在
    exec()
    中使用
    adb
    参数。我们可以找到一个解释。改用
    pm安装app.apk
    。尽管以编程方式执行命令不是一项简单的任务。您可能需要先抓取
    su