我正在使用两部手机,Galaxy Nexus(JellyBean) 和 Nexus 5(KitKat)。我正在尝试执行存在于
中的脚本/data/folder/scripts/run.sh
我使用 Process.Builder 来构建命令。此命令是通过获取
Environment.getDataDirectory().toString() + "/folder/scripts/run.sh"
在 Galaxy Nexus 上运行它没有问题,但是当我在 Nexus 5 上运行它时,我在运行 process.start() 时捕获了一个异常。我得到的输出包含:
Error running exec(). Command: [/data/folder/scripts/run.sh, "param"]. Working directory: null Environment: [ADNROID_ROOT=/system ... ]
我的脚本的目录结构在两个文件上是相同的。
编辑:
所以我在加载应用程序后立即查看了 logcat,我想我已经查明了问题所在。
有一条错误提示未找到 list 文件。 警告:java.io.FileNotFoundException/data/folder/Manifest:打开 EACCESS 失败(权限被拒绝)。
这不适用于运行 JellyBean 的 Galaxy Nexus。 KitKat 是否存在一些安全问题?
最佳答案
问题是由于没有根访问权限。修复了 SuperSu 授予应用程序权限的问题。
关于android - Android 上的工作目录 : null environment when running Process. Builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22815363/