Android工作室| 依赖管理

Ash*_*rma 6 dependencies android-gradle-plugin

任何人都可以建议,我们如何在android gradle中基于某些条件在构建时添加依赖:

dependencies{
       if(someCondition){
           // add dependency
       } 
   }
Run Code Online (Sandbox Code Playgroud)

提前致谢!!

Ash*_*rma 1

我找到了一个解决方案:

步骤1:boolean variable在根级别声明一个in gradle。

like: def someDependencyEnabled = true //This could be dynamically set.
Run Code Online (Sandbox Code Playgroud)

步骤2:使用这个boolean变量,我们可以应用如下检查:

if(someDependencyEnabled){
    //Add some dependency
}
else
{
    //Add some other dependency
}
Run Code Online (Sandbox Code Playgroud)

Step3:针对不同情况定义不同的源集:

android.sourceSets {
        main {
            java.srcDirs = ['src/main/java', someDependencyEnabled ? 'src/dependency_enabled_src' : 'src/dependency_disabled_src']
        }

}
Run Code Online (Sandbox Code Playgroud)

其中: 'src/main/java':是包含公共代码的公共 src 文件。

'src/dependency_enabled_src':是包含依赖项特定代码的源文件夹。'src/main/java' 进一步使用它。

'src/dependency_disabled_src':是禁用特定依赖项时包含备用代码的源文件夹。

就我而言,我在两个文件夹(dependency_enabled 和 dependency_disabled src)中编写了相同名称的类、方法和包名称,并在 dependency_enabled_src 中编写了具有所需实现的方法,并为 dependency_disabled_src 编写了空方法。