Problemas com banco de dados do AT.. para saber mais --> clique aqui

Erro ao executar comando adb | grep via Java



  • Pessoal,
    Estou usando Java + Appium em um projeto de testes para App Android. A necessidade é saber a versão do Android do device pra setar as capabilities corretamente (Appium quando > 17 senão Selendroid).
    Quando eu executo este comando no terminal da minha máquina tenho o retorno:

    # comando executado no terminal do Windows
    adb shell getprop | grep build.version.sdk
    # retorno
    [ro.build.version.sdk]: [16]
    

    Quando eu executo este comando no Java (via Eclipse + testng runner - usando a classe process e runtime) tenho o seguinte erro:
    /system/bin/sh: grep: not found

    OBS: Caso alguém tenha conseguido fazer isso de outra maneira, eu ficaria muito feliz em saber como foi feito ;)

    Abraços


  • MVP

    Grep é um comando unix, então ele deve estar se perdendo quando está tentando rodar com o process (e runtime).
    Tu por acaso está usando algo assim:

    p = Runtime.getRuntime().exec(command);

    ???

    ps: Acho que o pipeline está te ferrando, dá uma olhada nesse link:
    StackOverFlow



  • @Ramses-Saccol-de-Almeida, vc tem razão nas duas coisas: Eu que instalei o grep no neste terminal Windows e o problema estava no pipe (conforme dito no post).
    Pra funcionar eu fiz o seguinte:
    Criei um script .bat:

    adb shell getprop | grep build.version.sdk
    exit
    

    E o executo assim:

    String command = "cmd /c getDeviceVersion.bat";
    p = Runtime.getRuntime().exec(command);
    

    Obrigado pelo help. Abraço


  • MVP

    @Flávio-Meira Se consegui ajudar, então está bom. Bom trabalho aí