【问题标题】:Can't create file with Perl script on Android (using perl-android-apk)无法在 Android 上使用 Perl 脚本创建文件(使用 perl-android-apk)
【发布时间】:2013-10-10 09:11:28
【问题描述】:

我想在 Android 上运行一个简单的 Perl 脚本。我正在使用perl-android-apk,它可以将Perl 解释器包含在一个APK 中(基于SL4A)。该项目带有一个hello.pl 脚本,它显示了一个toast。好的,到目前为止一切正常,所以我添加了一些文件创建行 - 现在整个 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 上运行整个过程时,会显示两个 toast(“Hello..”和“Bye..”),但我在任何地方都找不到文件 newtext.txt。我做错了什么?

【问题讨论】:

  • 嗯,你为什么不打印出你的工作目录呢? use Cwd; $a->makeToast("My working directory is " . cwd);
  • 好点。我试过了,cwd 只是一个空字符串。会不会是解释器不支持原生 Perl 而只支持SL4A's API

标签: android perl sl4a


【解决方案1】:

你的 Android 清单有这个吗?

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

此外,您可能无法写入该位置。这里的其他答案表明需要获取外部存储目录:

Environment.getExternalStorageDirectory();

也许您可以在 Java 中调用它并将其作为参数传递给您的 perl 脚本?

【讨论】:

  • 但是`cwd˙应该在没有这个权限的情况下工作,你不同意吗?我运行它时得到一个空白字符串。
  • 对不起,我不确定。 :-(
  • 还没有。仍然欢迎提出建议。
猜你喜欢
  • 2016-08-29
  • 2013-10-16
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 2013-04-13
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多