【问题标题】:Android - Set two built types to the same source folderAndroid - 将两种构建类型设置为同一个源文件夹
【发布时间】:2016-02-12 03:29:27
【问题描述】:

直到最近我们的 Android 应用只有两个 buildTypes debugrelease。我们刚刚添加了一个qa 构建类型,我希望让 qa 构建类型指向调试源代码,所以我不必复制代码。这可能吗?

qa 和 debug 的主要区别在于 Proguard。我们的 build.gradle 文件如下所示:

productFlavors {
        dev {
            minSdkVersion 21
        }
        prod {
            minSdkVersion 14
        }
    }

buildTypes {
    debug { 
        // no proguard
        // use debug code
    }
    qa { 
        // proguard
        // use debug code
    }
    release { 
        // proguard
        // use release code
    }
}

文件结构如下:

src
├── debug
│   ├── assets
│   ├── java
│   └── res
├── main
│   ├── java
│   └── res
├── release
│   ├── assets
│   ├── java
│   └── res

我尝试过使用 sourceSets,但它似乎不起作用:

sourceSets {
    qa {
        java.srcDirs = ['src/debug/java']
        res.srcDirs = ['src/debug/res']
    }
}

【问题讨论】:

    标签: android gradle android-gradle-plugin android-build android-build-type


    【解决方案1】:

    这些方面的东西应该可以让你到达那里:

    android {
        ...
    
        buildTypes {
            qa {
                minifyEnabled true
            }
        }
        sourceSets {
            qa {
                java {
                    srcDirs = ['src/main/java']
                }
            }
        }
    
        ...
    
    }
    

    尽管经过进一步检查,这似乎与您上面的示例相同,但我粘贴的格式确实对我有用 - 也许我错过了差异,或者可能是其他原因。

    您可以随时修改 build.gradle 并粘贴类似的内容以确保您的更改已生效:

    import static groovy.json.JsonOutput.*
    println(
        prettyPrint(toJson(
            android.sourceSets.collectEntries {ss -> [ss.name, ss.java.toString()]}
        ))
    )
    

    【讨论】:

      【解决方案2】:

      我是如此接近。我只需要添加 android manifest 文件和 assets 文件夹的位置。

      sourceSets {
          qa {
              manifest.srcFile 'src/debug/AndroidManifest.xml'
              java.srcDirs = ['src/debug/java']
              res.srcDirs = ['src/debug/res']
              assets.srcDirs = ['src/debug/assets']
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2020-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-03
        • 2016-06-27
        • 2014-01-03
        • 2019-05-01
        相关资源
        最近更新 更多