Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android studio-if条件下的依赖项-标志_Android_Android Studio_Gradle_Build.gradle - Fatal编程技术网

android studio-if条件下的依赖项-标志

android studio-if条件下的依赖项-标志,android,android-studio,gradle,build.gradle,Android,Android Studio,Gradle,Build.gradle,我目前有一个add,它在build.gradle中有一些依赖项 dependencies { compile project: 'com.name.libOne', name: 'libOne' compile group: 'com.name.libTwo', name: 'libTwo' //a few more dependencies } 现在我正在寻找一种方法,将一些依赖项置于某种条件下 因此,并非每次我构建应用程序时,它都会有所有这些依赖项 像

我目前有一个add,它在build.gradle中有一些依赖项

dependencies {
     compile project: 'com.name.libOne', name: 'libOne'
     compile group: 'com.name.libTwo', name: 'libTwo'
     //a few more dependencies
    }
现在我正在寻找一种方法,将一些依赖项置于某种条件下 因此,并非每次我构建应用程序时,它都会有所有这些依赖项

像这样:

dependencies {
     if (one) {
         compile project: 'com.name.libOne', name: 'libOne'
     }
     compile group: 'com.name.libTwo', name: 'libTwo'
     //a few more dependencies
}
有什么办法吗?所以我可以向build命令发送标志
gradlew.bat assembleDebug
并且该标志将由这些条件读取?

您可以尝试将特定的依赖项移动到separate
.gradle
文件中,并有条件地应用它们。例如,假设您在与当前构建脚本相同的目录中创建了一个
libOneDependency.gradle
文件,该文件包含:

dependencies {
    compile project: 'com.name.libOne', name: 'libOne'
}
然后将其应用到主构建脚本中,从
依赖项中退出
闭包,如下所示

if (project.hasProperty('nameOfYourFlag')) 
{
  apply from: 'libOneDependency.gradle'
}

因此,现在您必须将您的标志作为
-PnameOfYourFlag

提供给构建,我在哪里可以将标志应用于构建?然后运行构建:
gradlew.bat assembleDebug-PnameOfYourFlag
它可以工作。唯一的问题是现在我不想使用某些部分,我得到了一个编译错误。你能想出什么解决办法吗