Фильтры 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, наследуемых от родительского типа сборки.

Другие вопросы по тегам