Вот моя проблема. Я работаю над уже довольно большим приложением для Android и добавляю собственную библиотеку.
Пока я тестирую, я хотел бы собирать только для armeabi-v7a по разным причинам. В моем тестовом телефоне есть этот abi, и в настоящее время у меня есть проблемы со сборкой некоторых сторонних библиотек с некоторыми ABI.
Я уже искал в Google / SEed, как фильтровать ABI.
Я добавил в свое приложение build.gradle следующее:
splits {
abi {
enable true
reset()
include 'armeabi-v7a'
}
}
defaultConfig {
externalNativeBuild {
cmake {
abiFilters "armeabi-v7a"
}
}
}
На всякий случай продублировал эту конфигурацию в своих модулях build.gradle.
Однако запуск сборки приводит к ошибкам CMake, говоря, что он не может найти некоторые инструменты для mips ABI и x86_64. (На самом деле у меня их нет)
Было бы действительно полезно, если бы кто-то мог предположить, почему gradle игнорирует записи конфигурации abi и как я могу это решить.
Спасибо. Я безуспешно пытался добавить ndk {...}. Хорошо, я приведу минимальный пример.
splits {abi {enable true reset () include 'armeabi-v7a'}} может не понадобиться.
если вы просто хотите применить один ABI, достаточно строки abiFilters. Имейте в виду, что это относится только к вашему текущему модулю.
Удивительно, но я не могу воспроизвести свою проблему на минимальном примере. Возможно ли, что другое свойство проекта, не определенное в build.gradle, будет значительным?
Использует ли ваш настоящий проект и минимальный пример проекта одну и ту же версию Gradle и версию плагина Android Gradle?
Да, оба работают с Gradle 4.1 и плагином Gradle 2.3.3
Находится ли ваш defaultConfig в блоке android вашего файла gradle?
Я не могу воспроизвести это. Не могли бы вы привести полный минимальный пример? Кроме того, пробовали ли вы добавить
ndk { abiFilters 'armeabi-v7a' }в свойdefaultConfig?