Android - 将两个构建类型设置为同一源文件夹

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

直到最近,我们的 Android 应用程序只有两种构建类型 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 list 文件和 Assets 文件夹的位置。

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

关于Android - 将两个构建类型设置为同一源文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33643796/

相关文章:

java - 打开 URL 的 Intent 不适用于一个应用程序,但适用于另一个应用程序

gradle - 启用proGuard时,IntelliJ w/Gradle 1.11产生ArrayIndexOutOfBoundsException

安卓工作室Javadoc : Cannot find symbol

android - 如何在 Camera2 API 中启用前置摄像头?

android - 如何检测我的 android 设备何时与配对的蓝牙设备连接/断开连接

android - Kotlin Android 扩展在库类型模块中不起作用

android - 无法找到可选库 : org. apache.http.legacy

android - 在 Android 上使用 GLSL ES (OpenGL ES 2.0) 渲染茶壶

android - Android Studio建议

maven - 使用 Gradle 构建 Maven 插件