在Android Studio中不能识别的多维度味道的测试源目录

我有一个测试和androidTest源目录的多维味道的问题。

鉴于以下风味:

flavorDimensions "taste", "serving" productFlavors { chocolate { flavorDimension "taste" } strawberry { flavorDimension "taste" } kiwi { flavorDimension "taste" } sample { flavorDimension "serving" } whole { flavorDimension "serving" } } 

在Android Studio中识别“非测试”源目录(任何风味组合)没有问题:

src / sample,src / whole,src / chocolate,src / strawberry,src / kiwi,src / chocolateSample,src / chocolateWhole,src / strawberrySample,src / strawberryWhole,src / kiwiSample,src / kiwiWhole

我的问题是与“测试”源目录。
只识别单一维度的风格: src / testSample,src / testWhole,src / testChocolate,src / testStrawberry,src / testKiwi
多维风格不是: src / testChocolateSample,src / testChocolateWhole,src / testStrawberrySample,src / testStrawberryWhole,src / testKiwiSample,src / testKiwiWhole

这也是“androidTest”等效源代码目录的情况。

我的印象是,它是没有正确生成的app.iml。 虽然了解我们永远不应该这样做,如果我手动添加缺少的条目,文件夹被正确识别。

为什么这应该与非测试源目录一起工作,但是在测试源目录下失败呢? 这是一个已知的问题或Gradle插件的限制?

我试着研究这个,但是只找到了与测试源文件夹相关的单一味道维度或非测试源文件夹的多维度味道相关的主题。 测试源文件夹的多维度风格没有任何关系。

你应该能够通过修改你的android应用程序build.gradle文件来解决这个问题。 例如,要将testChocolateSample添加到单元测试,并将testChocolate到android集成测试中:

 android { [...] sourceSets { main.java.srcDirs += 'src/main/java' testChocolateSample.java.srcDirs += 'src/testChocolateSample/java' androidTestChocolate.java.srcDirs += 'src/androidTestChocolate/java' } } 

这也适用于Kotlin。 只要用kotlin切换java