当前位置:   article > 正文

Android Studio Cmake升级至最新版本_android studio更新cmake

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.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

警告内容为:正在使用无法自动检测编译器属性的旧版本的 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"
  • 1
  • 2

模块build.gradle文件

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

2.2 正确更新CMake的方法

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

local.properties不定义cmake.dir

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

模块build.gradle文件保持不变

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/223336
推荐阅读
相关标签
  

闽ICP备14008679号