Ошибка выполнения команды adb в Android - java.io.IOException: не удается запустить программу & ldquo; adb & rdquo ;: error = 13, Permission denied [duplicate]

  // пример алгоритма сортировки #include & lt; iostream & gt;  // std :: cout #include & lt; algorithm & gt;  // std :: sort #include & lt; vector & gt;  // std :: vector с использованием пространства имен std;  int main () {char myints [] = {'F', 'C', 'E', 'G', 'A', 'H', 'B', 'D'};  вектор & л; символ & GT;  myvector (myints, myints + 8);  // 32 71 12 45 26 80 53 33 // используя сравнение по умолчанию (operator & lt;): sort (myvector.begin (), myvector.end ());  // (12 32 45 71) 26 80 53 33 // распечатать содержимое: cout & lt;  «myvector содержит:»;  для (int i = 0; i! = 8; i ++) cout & lt;  '' & lt; & lt; myvector [i];  cout & lt;  '\n';  Система ( "Пауза");  return 0;  }  
4
задан gino 15 March 2011 в 03:43
поделиться

3 ответа

Для этого уже существует API, Context.startInstrumentation:

Так реализуется команда оболочки. Вы ничего не можете сделать, запустив команду оболочки, чем вы можете сделать в своем собственном процессе. Кроме того, никакие команды оболочки не являются частью SDK, поэтому все, что вы делаете с ним, скорее всего, сломается в какой-то момент на разных устройствах или версиях платформы.

2
ответ дан DeltaCap 16 August 2018 в 06:47
поделиться

Вы должны использовать Context.startInstrumentation , а не adb. Например, из вашей операции запустите

  startInstrumentation (новое имя компонента («com.example.aatg.tc.test», «android.test.InstrumentationTestRunner»), null, null);   
0
ответ дан Diego Torres Milano 16 August 2018 в 06:47
поделиться
  • 1
    Большое вам спасибо! Это очень помогает мне – gino 15 March 2011 в 06:39

Короткий ответ - нет.

Часть после команды «adb shell» - это выполняемая часть, как Runtime.getRuntime().exec(...)

Возможно, вы сможете достичь того, что вы после использования Runtime.getRuntime().exec("instrument -w com.demo.test/android.test.InstrumentationTestRunner"). Я не использовал его сам, но вам может понадобиться передать аргументы в виде массива. Проверьте документацию .

-1
ответ дан Mark McDonald 16 August 2018 в 06:47
поделиться
  • 1
    Я могу использовать startInstrumentation () для того, чего хочу достичь, и спасибо за ваши советы. – gino 15 March 2011 в 06:43
  • 2
    он не будет работать в Android 4.2 и далее, «am instrument» только системное приложение может вызывать Android 4.2 – VISHAL VIRADIA 16 January 2013 в 12:48
  • 3
    Полезно знать @VISHALVIRADIA. Спасибо за разъяснения. Как я уже говорил, это не решение. Это неприятный взлом, и с ним следует относиться с осторожностью. – Mark McDonald 17 January 2013 в 05:50
Другие вопросы по тегам:

Похожие вопросы: