在 Android Studio 3.3 中,我使用本机 (C++) 库,它是用 CMake 构建的。 Android 插件(v. 3.2.1)将根据配置选择“内置”或“外部”cmakeexternalNativeBuild
,如记录于开发者.android.com https://developer.android.com/studio/projects/add-native-code#use_a_custom_cmake_version.
我想添加一个额外的自定义任务(安装),它应该使用相同的cmake版本为 Android 插件。但即使使用“内置”cmake,也不清楚路径是什么。我可以找到android.sdkDirectory
,但即使在那里我也有今天sdk\cmake\3.6.4111459
and sdk\cmake\3.10.2.4988404
,出于某种奇怪的原因,我的一些项目选择3.6,而其他人则使用3.10。这与 Android Studio 的官方发行说明相矛盾“Gradle 默认情况下仍然使用 3.6.0 版本”,但是好吧……
我如何决定使用哪个,而不需要重新实现 Android 插件的晦涩逻辑?
一个可能有帮助的解决方法是解析生成文件的第一行.externalNativeBuild/cmake/debug/armeabi-v7a/cmake_build_command.txt
:
Executable : C:\local\Android\sdk\cmake\3.10.2.4988404\bin\cmake.exe
这个还是需要一些调整,因为以后版本的构建工具会使用.cxx
代替.externalNativeBuild
;构建变体名称也可能不同。
Android Studio 将选择最新的 CMake 版本 under sdk\cmake
,但您可以配置您的特定版本
externalNativeBuild {
cmake {
...
version "cmake-version"
}
}
并指定我们的自定义 CMake 控制器,如下所示local.properties
cmake.dir="path-to-cmake"
或者,您可以选择不要从 SDK Manager 升级您的 CMake(只是为了删除sdk\cmake\<version to delete>
文件夹就可以了),这样您就可以坚持使用您的项目喜欢的 CMake 版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)