【发布时间】:2019-02-10 17:30:15
【问题描述】:
在 Android Studio 3.3 中,我使用使用 CMake 构建的本机 (C++) 库。 Android 插件 (v. 3.2.1) 将根据 externalNativeBuild 的配置选择“内置”或“外部”cmake,如 developer.android.com 中所述。
我想添加一个额外的自定义任务(安装),它应该使用与 Android 插件相同的 cmake 版本。但即使使用“内置”cmake,也不清楚路径是什么。我可以找到android.sdkDirectory,但即便如此我今天也有sdk\cmake\3.6.4111459 和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;构建变体名称也可能不同。
【问题讨论】:
-
@Michael,问题是我是否可以从 Android 插件获取此信息,而不是重新实现其晦涩的逻辑。
-
好的。那么也许你应该删除 "How can I decision to use which to use, without reimplementing the Android Plugin's obscur logic?" 部分,因为这就是我要回复的内容。
-
“文档没有解释他们如何在 sdk\cmake\3.6.4111459 和 sdk\cmake\3.10.2.4988404 之间进行选择”。但他们确实这样做了:“未在 build.gradle 中设置特定 CMake 版本的项目是使用 CMake 3.6.0 构建的。要使用后面包含的版本,请在模块的 build.gradle 文件中指定 CMake 版本 3.10.2 "
标签: android-studio cmake android-ndk