在单个应用中为不同清单创建 Gradle 风格时遇到问题

Having trouble creating Gradle flavors for different manifests in a single app

我正在关注 these instructions 以创建风格,但 Android Studio 一直抱怨找不到 /path/to/my/project/app/src/main

而不是 main 按照说明,我有一个名为 portrait 的文件夹和一个名为 landscape 换句话说

/path/to/my/project/app/src/portrait/[res,java,assets,AndroidManifest.xml]

/path/to/my/project/app/src/landscape/[res,java,assets,AndroidManifest.xml]

我的 gradle 文件包含:

productFlavors {
    portrait {
        applicationId "com.my.project"
        versionName "1.0-portrait"
    }
    landscape {
        applicationId "com.my.project"
        versionName "1.0-landscape"
    }
}

然而,当我尝试制作项目时,我得到了

Error:Cause: java.io.FileNotFoundException: /Users/me/git/MY/PROJECT/app/src/main/AndroidManifest.xml (No such file or directory)

我尝试修改目录结构,但无法清除此投诉。我完全不清楚它为什么要寻找 "main"... 它从哪里获得该指令?

main sourceSet 不是可选的,您所有的 java 代码和资源都应该放在那里。只有口味特定的代码和资源应该适合您的口味。然后Gradle会按照http://tools.android.com/tech-docs/new-build-system/resource-merging

合并

所以,如果你没有 main,Gradle 就会抱怨。