Android Process Builder неожиданно сообщает, что файл не найден - PullRequest
0 голосов
/ 08 июля 2019

Я запускаю скрипт оболочки, используя компоновщик процессов.Уже несколько дней это работает нормально, но сегодня, когда я загрузил свои файлы в bitbucket и поиграл с ними, все, кажется, снова работает, за исключением того, что ProcessBuilder не может найти файл, который уже существует:

val processBuilder = ProcessBuilder().command(
                    filesDir.absolutePath + File.separator + "start.sh").start()

Сценарий start.sh уже находится в каталоге файлов приложения, но я получаю:

 java.io.IOException: Cannot run program "/data/user/0/com.example.project/files/start.sh": error=2, No such file or directory

Я пытался запустить его так:

   val processBuilder = ProcessBuilder().command("start.sh", filesDir.absolutePath + File.separator).start()

и затем я получаю отказано в доступе, хотя все файлы имеют chmod 777, и этот файл имеет даже флаги + rx.

1 Ответ

0 голосов
/ 08 июля 2019

Ну, это вряд ли кому-нибудь поможет, но вот что произошло:

Я попытался поместить свой код в bitbucket, и в процессе мне удалось удалить все из моей локальной папки. К счастью, мой код все еще был в Bitbucket, поэтому я просто скачал с него tar-файл и начал с нуля. Со второй попытки мне удалось все сделать правильно, но я использовал загруженные исходники из Bitbucket. Все было хорошо, за исключением того, что, очевидно, когда я импортировал проект непосредственно из Bitbucket, последовательность EOL синхронизированного / загруженного файла сценария оболочки изменилась на CRLF вместо LF ... Я сохранил файл с помощью LF, и проблема была решена позже.

...