IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 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.

警告内容为:正在使用无法自动检测编译器属性的旧版本的 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管理器中下载使用吧。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:42:07  更:2022-03-24 00:44:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 20:13:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码