Невозможно создать файл со скриптом Perl на Android (используя perl-android-apk)

Я хочу запустить простой Perl-скрипт на Android. Я использую perl-android-apk, что позволяет включить Perl интерпретатор в одном APK (на основе SL4A). Проект поставляется со скриптом hello.pl, который показывает тост. Хорошо, пока все работает, поэтому я добавил несколько строк для создания файла - теперь весь скрипт hello.pl выглядит так:

use Android;
my $a = Android->new();
$a->makeToast("Hello, Android!");

open(TEXT,">newtext.txt") || $a->makeToast("I died.");
print TEXT "Check out our text file!";
close(TEXT);

$a->makeToast("Bye, Android!");

Когда я запускаю все это на Android, отображаются оба всплывающих уведомления («Привет ..» и «Пока ..»), но я нигде не могу найти файл newtext.txt. Что я делаю неправильно?


person c0dehunter    schedule 10.10.2013    source источник
comment
Хм, почему бы тебе не распечатать свой рабочий каталог? use Cwd; $a->makeToast("My working directory is " . cwd);   -  person amon    schedule 10.10.2013
comment
Хорошая точка зрения. Я попробовал это, и cwd - это просто пустая строка. Может быть интерпретатор не поддерживает собственный Perl, а поддерживает только API SL4A?   -  person c0dehunter    schedule 10.10.2013


Ответы (1)


В вашем манифесте Android есть это?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Кроме того, вы не сможете писать в это место. Другие ответы здесь указывают, что вам нужно получить каталог внешнего хранилища:

Environment.getExternalStorageDirectory();

Может быть, вы могли бы вызвать это на Java и передать в свой Perl-скрипт в качестве аргумента?

person Carl Anderson    schedule 15.10.2013
comment
Но `cwd˙ должен работать без этого разрешения, согласны? Я получаю пустую строку, когда запускаю ее. - person c0dehunter; 23.10.2013
comment
Извините, тогда я не уверен. :-( - person Carl Anderson; 23.10.2013
comment
Еще нет. Все еще открыт для предложений. - person c0dehunter; 07.11.2013