php - php的gradle命令执行失败

标签 php android gradle

我想从PHP执行gradle命令以使用不同的应用程序ID和应用程序名称构建android apk

的PHP

exec("cd D:\androidApp && gradlew assembleDebug  -PapplicationId=" . $applicationId . " -PapplicationName=" . $applicationName, $output_array);

build.gradle
android {

def getMyApplicationId = { ->
    def appId = project.hasProperty('applicationId') ? applicationId : "com.example.test"
    println "ApplicationId is set to $appId"
    return appId
}
def getMyApplicationName = { ->
    def name = project.hasProperty('applicationName') ?  applicationName: "Test"
    println "ApplicationName is set to $name"
    return name
}

compileSdkVersion 28
defaultConfig {
    applicationId getMyApplicationId()
    minSdkVersion 17
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
}


buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
        resValue("string", "app_name", getMyApplicationName())

    }
    debug {
        resValue("string", "app_name", getMyApplicationName())
        debuggable true
        applicationIdSuffix '.debug'
        versionNameSuffix '-DEBUG'

    }
}}

输出结果是:
0 => 'Active code page: 65001'
1 => 'Parallel execution is an incubating feature.'
2 => 'ApplicationId is set to net.yasux.asdfsafsdf'
3 => 'ApplicationName is set to sdfsadfsf'
4 => 'ApplicationName is set to sdfsadfsf'
5 => ':app:checkDebugClasspath UP-TO-DATE'
6 => ':app:preBuild UP-TO-DATE'
7 => ':app:preDebugBuild UP-TO-DATE'
8 => ':app:compileDebugAidl NO-SOURCE'
9 => ':app:compileDebugRenderscript UP-TO-DATE'
10 => ':app:checkDebugManifest UP-TO-DATE'
11 => ':app:generateDebugBuildConfig'
12 => ':app:prepareLintJar UP-TO-DATE'
13 => ':app:mainApkListPersistenceDebug UP-TO-DATE'
14 => ':app:generateDebugResValues'
15 => ':app:generateDebugResources'
16 => ':app:mergeDebugResources FAILED'
17 => '9 actionable tasks: 3 executed, 6 up-to-date'

16 => ':app:mergeDebugResources FAILED'



我试图在cmd Windows中执行此命令,apk将在php失败时创建成功

错误的根源是什么?

提前致谢 :)

最佳答案

解决方案:

首先,您要设置执行命令之前的执行时间

ini_set('max_execution_time', 1250);



其次,您想通过在执行命令中添加 cleanBuildCache 来清理android中的构建缓存。

第三步,通过添加 --project-dir D:\ androidApp 在命令中为android设置项目目录

exec("D:\androidApp\gradlew.bat cleanBuildCache assembleDebug --project-dir D:\androidApp -PapplicationId=" . $model->applicationId . " -PapplicationName=" . $model->applicationName, $output_array);

关于php - php的gradle命令执行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53207253/

相关文章:

java - SocketImpl 和 JUnit/Gradle

android - 无法从外部 gradle 文件中获取未知属性

javascript - 无法从 phpmyadmin 生成饼图

php - 选择查询的顺序在准备好的语句中不起作用

php - 在 jQuery onClick 上,递增 PHP 变量?

android - 无法打开eclipse,启动屏幕闪烁但打不开

php - 更改不会反射(reflect)在 Laravel View 中

android - 如何以编程方式检查文件是否是android中的数据库?

java - 如何以用户友好的方式过滤错误消息,而无需在 Android 中创建自定义字符串?

java - 将应用程序正确划分为模块