【问题标题】:Gradle dynamic flavorGradle 动态风味
【发布时间】:2015-07-09 16:22:15
【问题描述】:

我想从目录树创建动态风味。 效果很好!

但 Android Studio 在其 tmp 文件中使用 gradle,例如:

/home/svirch_n/.IntelliJIdea14/system/compile-server

我的脚本不再工作了,因为它使用了这样的相对路径:

Closure getFlavors = { rootDir, basePackage ->
    def result = [:]
    new File("$rootDir").eachDir() { dir ->
        def name = dir.getName()
            if ("$name" != "main")
                result.put("$name", "$basePackage.$name")
        }
    return result
}

// This is an ugly closure.
// If I can get rid of this, my problem will be solved
Closure getSrcPath = {
    if (System.getProperty("user.dir").split("/").last() == "app") {
        return "src"
    } else {
        return "app/src"
    }
}

android {

    ...

    def myFlavors = getFlavors(getSrcPath(), "com.example.app")

    productFlavors {

        myFlavors.each { flavorName, flavorPackage ->
            "$flavorName" {
                applicationId "$flavorPackage"
            }
        }
    }

}

您知道如何解决这个问题吗? 提前感谢您的帮助

P.S:我想要动态风格,因为我的 git 项目有公共和私有存储库,并不是每个人都可以拥有所有风格,但我希望它们无论如何都能编译。

【问题讨论】:

    标签: android groovy gradle android-productflavors


    【解决方案1】:

    假设我在子项目“app”中,我可以使用:

    project(":app").getProjectDir().getPath()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      相关资源
      最近更新 更多