Возникли проблемы с запуском сценария оболочки bash в Android ОС. Использование Android Studio и эмулятора Google Pixel. Получение «отказано в разрешении» на выполнение скрипта. Разрешение сценария - «755». Сообщите мне, если у меня что-то не так. Обратите внимание: когда я делаю: %adb shell
%run-as com.example.myapplication
. %./getinfo.sh
. он работает нормально.
Он просто не запускается, когда скрипт запускается в коде Java приложения в эмуляторе Android. Сообщите мне, если у меня что-то не так. Спасибо!
Соответствующий код java -
String command="/data/data/com.example.myapplication/getinfo.sh";
ProcessBuilder builder = new ProcessBuilder(command);
Process p = builder.start();
p.waitFor();.
Ошибки, перечисленные logcat:
05-27 13:37:46.588 9348 9348 I System.out: - command=/data/data/com.example.myapplication/getinfo.sh^M.
05-27 13:37:46.598 9348 9348 W System.err: java.io.IOException: Cannot run program "/data/data/com.example.myapplication/getinfo.sh": error=13, Permission denied^M.
05-27 13:37:46.598 9348 9348 W System.err: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)^M.
05-27 13:37:46.598 9348 9348 W System.err: at com.example.myapplication.MainActivity$1.onClick(MainActivity.java:227)^M.
05-27 13:37:46.598 9348 9348 W System.err: at android.view.View.performClick(View.java:7125)^M.
05-27 13:37:46.598 9348 9348 W System.err: at android.view.View.performClickInternal(View.java:7102)^M
05-27 13:37:46.598 9348 9348 W System.err: at android.view.View.access$3500(View.java:801)^M.
05-27 13:37:46.598 9348 9348 W System.err: at android.view.View$PerformClick.run(View.java:27336)^M.
05-27 13:37:46.598 9348 9348 W System.err: at android.os.Handler.handleCallback(Handler.java:883)^M.
05-27 13:37:46.598 9348 9348 W System.err: at android.os.Handler.dispatchMessage(Handler.java:100)^M.
05-27 13:37:46.598 9348 9348 W System.err: at android.os.Looper.loop(Looper.java:214)^M
05-27 13:37:46.598 9348 9348 W System.err: at android.app.ActivityThread.main(ActivityThread.java:7356)^M.
05-27 13:37:46.598 9348 9348 W System.err: at java.lang.reflect.Method.invoke(Native Method)^M
05-27 13:37:46.598 9348 9348 W System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)^M.
05-27 13:37:46.599 9348 9348 W System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)^M
05-27 13:37:46.599 9348 9348 W System.err: Caused by: java.io.IOException: error=13, Permission denied^M.
05-27 13:37:46.599 9348 9348 W System.err: at java.lang.UNIXProcess.forkAndExec(Native Method)^M.
05-27 13:37:46.599 9348 9348 W System.err: at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)^M.
05-27 13:37:46.599 9348 9348 W System.err: at java.lang.ProcessImpl.start(ProcessImpl.java:141)^M.
05-27 13:37:46.599 9348 9348 W System.err: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)^M.