Фильтры ABI расширенных вариантов сборки не перекрывают своих родителей
В проекте мне нужны специальные фильтры ABI для каждого выпуска и отладки, а также некоторые экстендированные варианты сборки. Это нормально и отлично работает с отладкой и выпуском.
release {
.
.
.
ndk {
abiFilters 'armeabi'
}
}
debug {
.
.
.
ndk {
abiFilters 'x86', 'x86_64', 'armeabi'
}
}
Когда я расширяю новый вариант сборки, который инициирует каждый из этих вариантов буксировки, абифильтры остаются и не меняются. Например, у меня есть debug_on_mainserver, который запускает отладку. но я хочу добавить еще один abiFilter. Но все равно использовать отладочные abiFilters.
debug_on_mainserver {
initWith(buildTypes.debug)
.
.
.
ndk {
abiFilters 'armeabi'
}
}
Я должен сказать, что могу ли я достичь этого с помощью Flavor, но я использую 3 варианта по другой причине (тип магазина и дескриптор конфигурации магазина и переменные), и я не хочу добавлять другой вариант и умножать мой вариант buildVariants. Поскольку это логично, следует включить в debug_on_mainserver. Как я могу исключить или удалить базовые abiFilters и добавить новый? Или это другой способ добиться этого?
1 ответ
Вы можете добиться того, чего хотите, добавивabitFilters.clear()
вот так:
debug_on_mainserver {
initWith(buildTypes.debug)
.
.
.
ndk {
abiFilters.clear()
abiFilters 'armeabi'
}
}
Причина, по которой это необходимо, заключается в том, чтоabiFilters 'string'
не является установщиком дляabiFilters
; он добавляет'string'
к существующимMutableSet<String>
фильтров ABI, наследуемых от родительского типа сборки.