Если вы изменили app -> appModule, вы можете попробовать
- закрыть проект из AS
- , заново открыть его с AS
- build>Обновить связанный проект C ++ (это «вынудит» сторону сборки C ++ очистить вещи)
В Studio 3.3.0 ошибка , влияющая на поведение IDE, пожалуйста, используйте версию 3.3.1 или лучше
Для поддержки CMake от Gradle приложение может использовать его тремя способами, начиная с наиболее явного способа «по умолчанию»:
VanillaCMake
Предполагается, что Vanilla CMake загружается локально с CMake.org, конфигурируя Gradle с помощью
- сообщить Gradle, где находится каталог cmake, в
local.properties
, например: cmake.dir=/your/vanilla/cmake/dir/like/linux-3.14.0
- передача версии cmake в gradle в вашем файле
app/build.gradle
, например
android {
externalNativeBuild {
version "3.14.0-rc2"
path '....' // point to your CMakeLists.txt, relative path to
// THIS app/build.gradle file.
}
}
Недостатком Vanilla CMake может быть то, что модули внутри SDK (например, AndroidNdkModules.cmake) могут отсутствовать впуть вашего модуля: проект не использует SDK / Studio внутренне упакованный CMake.
ExpliСильно забрать CMake SDK
На данный момент SDK выпускает 2 сборки cmake: 3.6.0-rc2 и 3.10.2.Ваш менеджер SDK загрузит их во внутренний известный каталог (SDK / cmake).Проект может подобрать конкретный для использования.Конечно, вы могли бы использовать вышеуказанный способ «Vanilla CMake», т. Е. Приложение настраивает все - указывает cmake.dir на путь cmake вашего $ SDK (вплоть до, но не включая «bin / cmake»).
Вы также можете игнорировать конфигурацию cmake.dir (Studio предоставляет это удобство, так как она находится внутри sdk и загружается менеджером sdk), поэтому вам нужно только настроить версию cmake в 'app / build.gradle'
android {
externalNativeBuild {
version "3.10.2"
path '....'
}
}
Нет разницы между 2 версиями cmake относительно функциональности подключаемого модуля gradle, разница заключается в функциональности самого cmake между двумя версиями.
Использовать по умолчанию: пусть Studio решает версию cmake
В настоящее времяПо умолчанию плагин Gradle - это внутренняя версия 3.6.0-RC2.Поэтому, если вы не настроите 'cmake.dir' И 'version', по умолчанию действует.Вы, конечно, все еще можете настроить его, как в случае с «Vanilla CMake»: путь и версия cmake;это немного страшно, но есть небольшое преимущество: когда Studio / Gradle меняет cmake по умолчанию на 3.10.2 или другие, ваше приложение не затрагивается.Мы рекомендуем приложению использовать последние версии.Как разработчику приложения, мне также может понравиться мое приложение с фиксированным поведением независимо от версий инструментов разработки;в этом смысле помогает явный способ.
Дополнительные примечания
- CMake версия : вы должны запустить 'cmake --version', чтобы получить правильный номер версии длясконфигурируйте build.grale, это NOT полный номер, встроенный в каталог cmake sdk.
- ваше местоположение CMakeLists.txt верхнего уровня : безразличие к плагину gradle.Практически вы можете поместить его вместе с кодом C ++, поэтому, когда вы делитесь им с другими платформами, они (сценарий сборки c ++ и исходный код) находятся в одном каталоге.