Android Studio Cmake升级至最新版本

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 {
	//设置CMake
    externalNativeBuild{
        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 {
	//设置CMake
    externalNativeBuild{
        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管理器中下载使用吧。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kmblack1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值