0

プロジェクトで 2 つのフレーバーを構築していますが、これらのフレーバーには共通のコードがあります。これは以前はうまく機能していましたが、最新バージョンの android studio と gradle では、このエラーが発生します。

SourceSets 'seta' and 'main' use the same file/folder for 'java': .../src/main/java

これは私がgradle.buildに持っているものです

productFlavors {
    seta {
        packageName "com.test.seta"
        versionCode 4
        versionName "2.0"
    }

    setb {
        packageName "com.test.setb"
        versionCode 2
        versionName "1.6"
    }
}

sourceSets {
    seta {
        java.srcDirs = ['src/main/java', 'src/seta/java']
        res.srcDirs = ['src/main/res', 'src/seta/res']
        assets.srcDirs = ['src/main/assets', 'src/seta/assets']
    }

    setb {
        java.srcDirs = ['src/main/java', 'src/setb/java']
        res.srcDirs = ['src/main/res', 'src/setb/res']
        assets.srcDirs = ['src/main/assets', 'src/setb/assets']
    }

}
4

1 に答える 1

2

個々のフレーバーの sourceSet では、メインの sourceSet を指定する必要はありません。共通コードをsrc/mainに置くことができ、他のフレーバーから明示的に参照する必要なくピックアップされます。

以前はどのように機能していたのかわかりません。

それを削除すると、実際にはブロックはまったく必要ありません。sourceSetsデフォルトの動作は、共通コードをsrc/mainに配置し、フレーバー固有のコードをsrc/ flavor-nameに配置することです。 .

于 2014-03-24T19:15:37.773 に答える