Android Process Builder неожиданно сообщает, что файл не найден

Я запускаю сценарий оболочки с помощью построителя процессов. Это работает нормально уже несколько дней, но сегодня, когда я загрузил свои файлы в битбакет и возился с ними, все, похоже, снова работает, за исключением того, что 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.


person m33ts4k0z    schedule 08.07.2019    source источник


Ответы (1)


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

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

person m33ts4k0z    schedule 08.07.2019