我正面临一个关于Gradle源集的奇怪问题。我怀疑这个问题属于Android Studio。 My Gradle文件定义了4种产品风格和4种源代码集,包括main。我的活动文件放在不同的源集上,但不放在主源集中。但是当我从任何源集打开一个活动文件时,Android工作室显示:“在文件上找到重复文件...请参阅其他源集文件。”由于没有该文件的副本在主源设置中,此消息不应出现。但是,我可以使用任何产品口味构建和运行,并根据源集正确工作。
我的gradle文件如下:
defaultConfig {
applicationId "com.x.y.z"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
productFlavors {
design {
resValue("string", "app_name", "App Design")
applicationIdSuffix ".design"
versionNameSuffix "-design"
}
dev {
resValue("string", "app_name", "App Dev")
applicationIdSuffix ".dev"
versionNameSuffix "-dev"
}
prod {
resValue("string", "app_name", "App Prod")
applicationIdSuffix ".prod"
versionNameSuffix "-prod"
}
playStore {
resValue("string", "app_name", "Real App Name")
}
}
sourceSets {
main {
java.srcDirs = ['src/main/java']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
design {
java.srcDirs = ['src/design/java']
res.srcDirs = ['src/design/res']
assets.srcDirs = ['src/design/assets']
}
dev {
java.srcDirs = ['src/dev/java']
res.srcDirs = ['src/dev/res']
assets.srcDirs = ['src/dev/assets']
}
prod {
java.srcDirs = ['src/prod/java']
res.srcDirs = ['src/prod/res']
assets.srcDirs = ['src/prod/assets']
}
}
源目录如下:
src
--androidTest
--design
--assets
--java
--res
--dev
--assets
--java
--res
--main
--assets
--java
--res
--prod
--assets
--java
--res