Я хочу разделить свой проект на несколько исходных наборов, поэтому я хочу использовать несколько файлов AndroidManifest.xml для объявления текущего компонента sourceSets, использовать сборку apk и объединить основной файл AndroidManifest.xml, но при этом поддерживается только одна основная настройка AndroidManifest.xml, поэтому какя могу это сделать?
Почему я хочу использовать несколько исходных наборов?Потому что, если использовать несколько модулей, он компилируется так медленно.
Это настройки моего проекта
def moduleDirs = project.projectDir.listFiles()
.findAll {
def name = it.name
// filter all inner's module
it.isDirectory() && msExtension.modulePrefix.any { name.startsWith(it) }
}
Set<File> manifestSet = new HashSet<>()
Set<String> modules = new HashSet<>()
def sourceSetConf = { AndroidSourceSet sourceSet ->
moduleDirs.each {
def moduleName = it.name
def dir = sourceSet.name
sourceSet.assets.srcDirs "${moduleName}/src/${dir}/assets"
sourceSet.java.srcDirs "${moduleName}/src/${dir}/java"
sourceSet.res.srcDirs "${moduleName}/src/${dir}/res"
sourceSet.aidl.srcDirs "${moduleName}/src/${dir}/aidl"
// each AndroidManifest.xml
def manifestFile = project.file("${moduleName}/AndroidManifest.xml")
if (manifestFile != null && manifestFile.exists()) {
manifestSet.add(manifestFile)
}
modules.add(moduleName)
}
}
// for default main sources
sourceSetConf(android.sourceSets.main)
// for buildType sources
android.buildTypes.each {
def buildType = it.name
android.sourceSets.getByName(buildType) {
sourceSetConf(it)
}
}
// for flavor sources
android.productFlavors.each {
def flavor = it.name
android.sourceSets.getByName(flavor) {
sourceSetConf(it)
}
}
Я вижу некоторый код из gradle, который объединяет несколько модулей, но все еще не знаю, как
ManifestMerger2
ProcessManifest