使用 PHP 构建 gradle Android 项目
Posted
技术标签:
【中文标题】使用 PHP 构建 gradle Android 项目【英文标题】:Using PHP to build gradle Android Project 【发布时间】:2016-03-31 17:35:56 【问题描述】:我正在开发一个 php 函数来执行构建 gradle 项目 android 的命令。
但要明确我想创建一个小系统可以修改一个android项目源并通过构建gradle生成APK项目。
我对此进行了大量搜索,发现了一些很接近的问题,但没有使用此命令。
这是我的功能。真的很简单,我的服务器已经安装了gradle工具,命令在我的终端运行成功
function generator()
exec('cd /home/my/AndroidStudioProjects/BetaProject/;./gradlew assembleDebug 2>&1',$out,$err);
var_dump($out);
var_dump($err);
但是,当我用 php 执行它时,它给了我这个:
string(955) “线程“主”java.lang.RuntimeException 中的异常: java.io.FileNotFoundException: /usr/sbin/.gradle/wrapper/dists/gradle-2.4-all/3i2gobhdl0fm2tosnn15g540i0/gradle-2.4-all.zip.lck (没有这样的文件或目录)在 org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:78) 在 org.gradle.wrapper.Install.createDist(Install.java:47) 在 org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129) 在 org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48) 引起:java.io.FileNotFoundException: /usr/sbin/.gradle/wrapper/dists/gradle-2.4-all/3i2gobhdl0fm2tosnn15g540i0/gradle-2.4-all.zip.lck (没有这样的文件或目录)在 java.io.RandomAccessFile.open0(Native 方法)在 java.io.RandomAccessFile.open(RandomAccessFile.java:316) 在 java.io.RandomAccessFile.(RandomAccessFile.java:243) 在 org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:49) ... 3 更多“
如果有任何解决方案或建议,我会很高兴。
谢谢
【问题讨论】:
通过php_info()检查你的环境路径。终端和php有不同的值。 谢谢,但我已经通过 ls 命令检查了我的路径,是的,我的路径在我的 php 项目中,但这不是问题,因为我已经使用 cmd 进入 gradle 目录!我在终端测试了一切正常,但是 exec 给了我这个错误。 你有没有想过这个问题? 【参考方案1】:我遇到了同样的问题,我只是通过更改这些文件所在目录的所有者来授予 apache 执行这些脚本的权限来解决它
会是这样的:
sudo chown -R www-data your-directory/
我希望这对你有用。
【讨论】:
【参考方案2】:试试这个:
function generator()
exec('sh /home/my/AndroidStudioProjects/BetaProject/gradlew assembleDebug 2>&1',$out,$err);
var_dump($out);
var_dump($err);
【讨论】:
以上是关于使用 PHP 构建 gradle Android 项目的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Gradle 构建工具简介 ③ ( Gradle 构建脚本编程语言 | Groovy 语言简介 | Groovy 语言特性 )