无法识别产品风味的构建类型特定文件夹

Gaë*_*tan 4 android gradle android-productflavors

我已将我的项目配置为具有多种产品风格。我的模块中有以下代码build.gradle

android {
    // Rest of the configuration omitted for clarity
    buildTypes {
        debug {
            // ...
        }

        release {
            // ...
        }
    }

    productFlavors {
        paid
        free
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我创建一个文件(任意文件:Java中,资源,...),在paidfreedebugrelease,它是由Android工作室的认可,我可以在我的项目中使用它。

但是,如果在paidDebug(或类似文件夹)中创建了相同的文件,则Android Studio 无法识别该文件。我需要任何额外的配置才能工作吗?这不支持(还)吗?

dev*_*max 6

  1. 具有相同名称的源代码文件应放置在所有替代源集中(但不在“主”中)。

    任何一个:

    app/src/免费/java/com/domain/myapp/MainActivity.java
    app/src/付费/java/com/domain/myapp/MainActivity.java

    或者:

    app/src/ freeDebug /java/com/domain/myapp/MainActivity.java
    app/src/ freeRelease /java/com/domain/myapp/MainActivity.java
    app/src/ paidDebug /java/com/domain/myapp/MainActivity. java
    app/src/ paidRelease / java / com / domain / myapp / MainActivity.java

  2. 同名的资源文件可以放在任何源集中,包括“main”。

    app/src/ main /res/layout/activity_main.xml
    app/src/ paidDebug /res/layout/activity_main.xml
    app/src/ paidRelease /res/layout/activity_main.xml

    在这种情况下,在构建“free”风格时,将使用“main”集中的布局文件。但是,在“付费”风格的构建过程中,将使用特定版本的布局。