Windows 10下构建HelloJNI示例项目时出现CXX1405错误
解决Android Studio HelloJNI示例构建时的CXX1405 CMake配置错误
问题背景
在Windows 10系统使用Android Studio Electric Eel | 2022.0.0 Patch 2版本,构建官方HelloJNI示例项目时触发CXX1405错误,CMake配置阶段失败,执行的命令如下:
[CXX1405] error when building with cmake using C:\Users\az01799\AndroidStudioProjects\HelloJNI\app\src\main\cpp\CMakeLists.txt: C++ build system [configure] failed while executing: @echo off \"C:\\Users\\az01799\\AppData\\Local\\Android\\Sdk\\cmake\\3.18.1\\bin\\cmake.exe\" ^ \"-HC:\\Users\\az01799\\AndroidStudioProjects\\HelloJNI\\app\\src\\main\\cpp\" ^ \"-DCMAKE_SYSTEM_NAME=Android\" ^ \"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON\" ^ \"-DCMAKE_SYSTEM_VERSION=23\" ^ \"-DANDROID_PLATFORM=android-23\" ^ \"-DANDROID_ABI=x86\" ^ \"-DCMAKE_ANDROID_ARCH_ABI=x86\" ^ \"-DANDROID_NDK=C:\\Users\\az01799\\AppData\\Local\\Android\\Sdk\\ndk\\25.1.8937393\" ^ \"-DCMAKE_ANDROID_NDK=C:\\Users\\az01799\\AppData\\Local\\Android\\Sdk\\ndk\\25.1.8937393\" ^ \"-DCMAKE_TOOLCHAIN_FILE= C:\\Users\\az01799\\AppData\\Local\\Android\\Sdk\\ndk\\25.1.8937393\\build\\cmake\\android.toolchain.cmake\" ^ \"-DCMAKE_MAKE_PROGRAM= C:\\Users\\az01799\\AppData\\Local\\Android\\Sdk\\cmake\\3.18.1\\bin\\ninja.exe\" ^ \"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY= C:\\Users\\az01799\\AndroidStudioProjects\\HelloJNI\\app\\build\\intermediates\\cxx\\Debug\\50l44586\\obj\\x86\" ^ \"-DCMAKE_RUNTIME_OUTPUT_DIRECTORY= C:\\Users\\az01799\\AndroidStudioProjects\\HelloJNI\\app\\build\\intermediates\\cxx\\Debug\\50l44586\\obj\\x86\" ^ \"-DCMAKE_BUILD_TYPE=Debug\" ^ \"-BC:\\Users\\az01799\\AndroidStudioProjects\\HelloJNI\\app\\.cxx\\Debug\\50l44586\\x86\" ^ -GNinja from C:\Users\az01799\AndroidStudioProjects\HelloJNI\app Affected Modules: app
已尝试清理缓存重启、Build > Refresh Linked C++ Projects、同步Gradle等操作,问题未解决,仅使用Android Studio自带的CMake(路径:C:\Users\MYUSERNAME\AppData\Local\Android\Sdk\cmake)。
解决方法
- 调整CMake与NDK版本兼容性:CMake 3.18.1与NDK 25.x存在兼容性问题,打开SDK Manager安装CMake 3.22.1及以上版本(NDK 25.x推荐CMake 3.22+),然后在项目根目录的
local.properties中指定新的CMake路径:cmake.dir=C\:\\Users\\az01799\\AppData\\Local\\Android\\Sdk\\cmake\\3.22.1 - 修复路径转义与拆分问题:在
app/build.gradle中手动指定CMake参数,避免自动拆分导致的路径异常:android { externalNativeBuild { cmake { path file('src/main/cpp/CMakeLists.txt') version "3.22.1" // 指定兼容的CMake版本 } } defaultConfig { externalNativeBuild { cmake { abiFilters 'x86' arguments "-DCMAKE_TOOLCHAIN_FILE=${android.ndkDirectory}/build/cmake/android.toolchain.cmake", "-DCMAKE_MAKE_PROGRAM=${cmakeDirectory}/bin/ninja.exe" } } } } - 切换构建生成器:将CMake生成器从Ninja改为
Unix Makefiles,避免Windows下Ninja的路径解析问题。可在app/build.gradle的cmake配置中添加:arguments "-G", "Unix Makefiles" - 清理CMake缓存目录:手动删除项目下的
.cxx目录(路径:C:\Users\az01799\AndroidStudioProjects\HelloJNI\app\.cxx),然后重新执行构建。 - 检查目录权限:确保Android Studio拥有对用户目录(
C:\Users\az01799)的读写权限,可右键以管理员身份运行Android Studio尝试构建。
内容的提问来源于stack exchange,提问作者mberrada
相关产品推荐
相关产品推荐

