我正在尝试通过使用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”,这样您就可以看到自己的位置并与应该的位置进行比较!
关于php - 从PHP脚本exec()执行时,无法从gradle中获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505695/