1.存在的问题

Android Studio SDK manager管理器中截止目前最新的Cmake版本为3.18.1,如下图

编译时出现警告:

C/C++: debug|arm64-v8a :Call Stack (most recent call first):
C/C++: debug|arm64-v8a :  D:/android_sdk/ndk/23.1.7779620/build/cmake/android.toolchain.cmake:55 (include)
C/C++: debug|arm64-v8a :  D:/MyWork/2022/android/app/.cxx/Debug/25n33124/arm64-v8a/CMakeFiles/3.18.1-g262b901-dirty/CMakeSystem.cmake:6 (include)
C/C++: debug|arm64-v8a :  D:/MyWork/2022/android/app/.cxx/Debug/25n33124/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)
C/C++: debug|arm64-v8a :CMake Warning at D:/android_sdk/ndk/23.1.7779620/build/cmake/android-legacy.toolchain.cmake:416 (message):
C/C++: debug|arm64-v8a :  An old version of CMake is being used that cannot automatically detect
C/C++: debug|arm64-v8a :  compiler attributes.  Compiler identification is being bypassed.  Some
C/C++: debug|arm64-v8a :  values may be wrong or missing.  Update to CMake 3.19 or newer to use
C/C++: debug|arm64-v8a :  CMake's built-in compiler identification.

警告内容为:正在使用无法自动检测编译器属性的旧版本的 CMake。 正在绕过编译器标识。 某些值可能错误或缺失。 更新到 CMake 3.19 或更高版本,以使用 CMake 的内置编译器标识。

2 下载最新版CMake和ninja

下载最新版本的CMake(CMake截止发稿最新稳定版为3.22.3)
下载最新版本的ninja

假设条件

  • Android SDK默认安装在"D:\android_sdk"
  • CMake默认安装在"E:\cmake"
  • ninja安装至"E:\cmake\bin",即和cmake.exe在同一目录

2.1 更新CMake需要修改local.properties和模块build.gradle文件.

local.properties

#在最后一行添加下面的内容
cmake.dir="E\:\\cmake"

模块build.gradle文件

#在android节点中添加externalNativeBuild(只要在android节点中即可,位置随意),如下
android {//设置CMakeexternalNativeBuild{cmake{#指定cmake版本version "3.22.3"#指定CMakeLists.txt,相对路径path 'src/main/cpp/CMakeLists.txt'}}
}
  • 完成后打开项目目录,再打开app目录,然后删除.cxx和build目录;
  • 在android studio菜单中点击 Build->Rebuild Project会提示以下错误
[CXX1301] Could not get version from cmake.dir path '"E:\cmake"'.

2.2 正确更新CMake的方法

  • 将E:\cmake复制到Android SDK中的cmake目录
xcopy /S /Y e:\cmake D:\android_sdk\cmake\3.22.3

local.properties不定义cmake.dir

#不需要定义cmake.dir
#cmake.dir="E\:\\cmake"

模块build.gradle文件保持不变

#在android节点中添加externalNativeBuild(只要在android节点中即可,位置随意),如下
android {//设置CMakeexternalNativeBuild{cmake{#指定cmake版本version "3.22.3"#指定CMakeLists.txt,相对路径path 'src/main/cpp/CMakeLists.txt'}}
}
  • 完成后打开项目目录,再打开app目录,然后删除.cxx和build目录;
  • 在android studio菜单中点击 Build->Rebuild Project即可。

题外话local.properties中ndk.dir已弃用,并将在将来的版本中删除。还是老实在Android Studio SDK manager管理器中下载使用吧。

Android Studio Cmake升级至最新版本相关推荐

  1. android studio for mac 最新版本,Android Studio mac版-Android Studio for mac下载 V4.2.1-PC6苹果网...

    Android Studio mac版为在各种类型的Android设备上构建应用程序提供了最快的工具.Android Studio mac版完全免费,跨平台支持Win/Mac/Linux,是替代 Ec ...

  2. android 最新sdk版本,详解如何在Android studio中更新sdk版本和build-tools版本

    一.首先看下Android开发用到的sdk目录: build-tools 保存着一些Android平台相关通用工具,比如adb.和aapt.aidl.dx等文件. aapt即Android Asset ...

  3. android studio 发布版本,Android Studio 4.1 Canary 版本发布

    Android Studio 4.1 Canary 版本发布 主要开始支持 Jetpack Compose 支持 Jetpack Compose Jetpack Compose工具包提供了一种构建应用 ...

  4. 将Visual Studio更新到最新版本

    目录 使用Visual Studio安装程序 使用IDE 在Visual Studio中 使用通知中心 自定义更新设置 我们鼓励您更新到Visual Studio 2019的最新版本,以便始终获得最新 ...

  5. Android Studio 3.5.2版本安装流程

    1.点击(如图1所示) 图1 2.双击下载的文件,进入安装界面,点击"next"进入下一步.(如图2所示) 图2 3.最新版的Android Studio在这一步并没有sdk,需要 ...

  6. Android studio 和 gradle插件版本对应关系(最新 2022年)

    官网链接:Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers 由于网络的问题,在更新了Android studio版本之后,不能同 ...

  7. Android Studio 3.0 正式版本 发行说明 (翻译)

    前言 as终于发正式版了.赶快来看看有什么新的功能.本文采用翻译器翻译. Android Studio是为Android开发的官方IDE,包含构建Android应用程序所需的一切. 1.要获取最新版本 ...

  8. android studio cmake 2.2使用案例

    使用Android Studio 2.2和Cmake (CMakeLists)让OpenCV 飞起来 标签: androidopencvcmake 2016-11-22 13:23 1505人阅读 评 ...

  9. android studio 与gradle的版本对应

    参考官网:https://developer.android.com/studio/releases/gradle-plugin.html Plugin for Gradle 和 Gradle 之间的 ...

最新文章

  1. vim关闭下一行也是注释_10分钟教你为自己打造一个专属VIM
  2. python 三步问题
  3. U3D 扩展方法 Dotween tolua
  4. mysql2阶段提交具体实现_ShardingSphere 4.x 分布式事务之实现原理
  5. jQuery——封装form表单的数据为json对象
  6. C# 网络编程之使用Socket类Send、Receive方法的同步通讯
  7. WPF--ComboBox数据绑定
  8. 广义线性模型_广义线性模型(第六章补充)
  9. CGIC库的移植及使用
  10. linux中终止停止进程_如何在Linux中终止进程或停止程序
  11. 5-2计算机视觉的常见概念
  12. 思维导图是如何做会议记录的
  13. Windows安装杜比音效驱动
  14. QQ IM架构学习总结
  15. 采购人必须明白的八大发展趋势及原则
  16. TensorFlow 2.0 教程-词嵌入
  17. 代码质量好坏如何评判
  18. Node.js概述及编程基础
  19. 【UNR #1】合唱队形
  20. Low Poly Epic City的脚本研究日志(2)(2022.3.1)

热门文章

  1. 数据结构与算法:二叉树专题
  2. python做游戏脚本被监测_一个监视CSDN论坛押宝游戏状态的python脚本
  3. 程序人生 - 祝贺荣获《Java领域优质创作者》称号
  4. 设计模式之美-11| 实战一(下):如何利用基于充血模型的DDD开发一个虚拟钱包系统?
  5. [转载]C罗皇马蜜月结束 “独性”不改或遭弃
  6. 分享几个网站模板网站,免费的哦~~~
  7. 【怎么制作ppt】Focusky教程 | 导入PPT后出现内容丢失怎么办?
  8. Tampermonkey[油猴插件]开发者的神级工具!
  9. IDC追踪报告:帆软软件蝉联中国BI市场占有率第一
  10. 总是反酸是慢性胃炎的标志?