Android 格雷德尔,这是什么意思&引用;setRoot(';构建类型/debug';)";

Android 格雷德尔,这是什么意思&引用;setRoot(';构建类型/debug';)";,android,gradle,Android,Gradle,这是我的渐变设置: sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src/main/java'] resources.srcDirs = ['src/main/java'] aidl.srcDirs = ['src/main/java'] renderscript.srcDirs = ['src/

这是我的渐变设置:

    sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src/main/java']
        resources.srcDirs = ['src/main/java']
        aidl.srcDirs = ['src/main/java']
        renderscript.srcDirs = ['src/main/java']
        res.srcDirs = ['src/main/res']
        assets.srcDirs = ['assets']
    }
    instrumentTest.setRoot('tests')

    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')
}
buildTypes{
    release{
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
    debug{
        minifyEnabled false
    }
}
虽然我设置了
debug.setRoot('build-types/debug')release.setRoot('build-types/release'),但我找不到
build-types/debug
文件夹和
build-types/release
文件夹


怎么了?

使用
setRoot
方法为特定生成类型的配置设置路径。因此,对于
debug
release
,您需要创建这些文件夹,并将构建类型特定的文件放在其中。在当前配置中,您的意思是所有公共文件都位于
main
生成类型中,任何特定于生成类型的文件都将位于您指定的文件夹中


也就是说,您最好使用android插件支持的推荐项目结构。请参阅。如果您遵循约定,它将保持您的
build.gradle
文件干净。

因此,这意味着“如果我创建
build types/debug
文件夹并在其中放入类似
test.java
的内容,当我构建调试版本时,它将合并到主文件中?”我不太明白
main构建类型
的意思,只有调试和发布类型,不是吗?
main
包含项目的基础-任何发布/风格类型的共享代码。Android gradle插件默认有两种构建类型—
debug
release
。它们都将使用
main
作为基础,但是您放入
debug
release
文件夹中的任何内容都将与
main
合并以生成实际构建。我建议阅读关于这一点的官方文档:网上有一些关于配置Gradle构建类型/风格的教程。