Android studio无法识别源文件夹

imb*_*ryk 67 android gradle android-studio

我正在使用标准的Android Studio目录结构,我创建了不同的构建类型:

buildTypes {
    debug {
        runProguard false
        packageNameSuffix ".debug"
        signingConfig signingConfigs.debug
    }
    preview.initWith(buildTypes.debug)
    preview {
        packageNameSuffix ".preview"
    }
    release {
        runProguard false
        signingConfig signingConfigs.release
    }
}
Run Code Online (Sandbox Code Playgroud)

一切都编译好,但AS不识别所有的源文件夹.下只有文件夹maindebug被标记为源,下的文件夹previewrelease显示为普通文件夹实际上没有错误这些文件夹中检查

在此输入图像描述

我检查了.iml文件,并没有添加sourceFolder标签.

如果我手动编辑项目iml文件添加行:

 <sourceFolder url="file://$MODULE_DIR$/src/preview/java" isTestSource="false" />
 <sourceFolder url="file://$MODULE_DIR$/src/preview/res" type="java-resource" />
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常.

在此输入图像描述

...直到我与我的gradle文件同步 - 这将删除上面的行.

这是gradle插件中的错误,还是我做错了什么?

小智 129

您必须在构建变体列表中切换它,然后AS将选择适当的源集. 构建变种

  • 我仍然希望将来AS能够看到不同变体的来源 - 如果我需要在不同的变体中做一个小的改变,我必须手动切换,这有点烦人 (13认同)
  • 同意,每个构建变体都应该被识别并立即显示,这非常令人困惑! (2认同)