我正在尝试通过使用 exec()
从 PHP 脚本执行 Gradle 来构建 Android 应用程序,但没有响应,所以我无法理解构建失败的原因。
从终端(SSH)执行应用程序gradle包装器时,使用以下命令,整个过程工作正常:
x:/path/to/project/$ ./gradlew assembleRelease
x:/path/to/project/$ ./gradlew assembleRelease --debug --stacktrace
x:/path/to/project/$ ./gradlew assembleRelease --debug --stacktrace > output.txt
输出工作正常,我能够解决任何可能的问题。从 PHP 脚本执行 gradle 时,没有输出。
// array for the output to be dumped into
$output_array = array();
// $result is empty (tried with stacetrace, debug and an output file)
$result = exec("cd /path/to/project && ./gradlew assembleRelease", $output_array);
// nothing displayed
var_dump($output_array);
我无法说出问题出在哪里。我已经检查了所需的环境变量($GRADLE_HOME
和$ANDROID_HOME
)是否使用getenv()
设置,并且它们指向正确的路径。
任何帮助都会很棒!
我不是 Linux 专家,但似乎您从"~/path/to/project"(~ 表示您的主页路径)启动它(ssh)。
在 php 中,您尝试从"/path/to/project"(根文件夹的绝对路径)启动它。
尝试用"LS"替换您的第二个命令,这样您就会看到您所在的位置......并与你应该去的地方进行比较!