Android Studio 3.1.2构建失败:Gradle同步及CMake编译错误求助
解决Android Studio CMake构建时Clang找不到头文件的问题
从你提供的错误日志里,能一眼揪出核心问题:路径中的空格导致CMake解析路径时被意外截断。你的用户名是Rajeev Sarraf,包含空格字符,编译时系统把完整路径拆成了Sarraf/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi,自然找不到这个不存在的路径。
下面是几个按优先级排序的可行解决方案:
方案1:将NDK迁移到无空格目录(最稳妥)
这是解决路径空格问题的终极方案,后续不会再踩类似坑:
- 找到你的NDK目录:
C:\Users\Rajeev Sarraf\AppData\Local\Android\Sdk\ndk-bundle - 把它复制或移动到一个完全没有空格的路径,比如
C:\Android\Sdk\ndk-bundle - 打开项目根目录下的
local.properties文件,修改ndk.dir的路径为新位置:ndk.dir=C:\\Android\\Sdk\\ndk-bundle sdk.dir=C:\\Users\\Rajeev Sarraf\\AppData\\Local\\Android\\Sdk - 执行
Build > Clean Project,再点击Build > Rebuild Project重新构建
方案2:使用Windows短路径应急(临时方案)
Windows会给带空格的目录自动生成短路径(比如Rajeev Sarraf会被简化为RAJEEV~1),可以通过修改CMake参数规避空格问题:
- 打开模块级别的
build.gradle文件,在externalNativeBuild的cmake配置中添加指定系统根路径的参数:android { // 保留其他原有配置 externalNativeBuild { cmake { path "CMakeLists.txt" arguments "-DCMAKE_SYSROOT=C:/Users/RAJEEV~1/AppData/Local/Android/Sdk/ndk-bundle/sysroot" } } } - 同样执行清理和重建操作
方案3:更换无空格用户名(不推荐,操作成本高)
如果前两个方案都无法解决,你可以考虑创建一个不带空格的Windows用户,在新用户环境下重新安装Android Studio、SDK和NDK。这个方法操作繁琐,仅作为最后备选。
另外提一句:Android Studio 3.1.2是比较老旧的版本,后续如果遇到更多兼容性问题,建议升级到4.x及以上的稳定版本,新版本对路径空格的处理会更完善。
内容的提问来源于stack exchange,提问作者ROBOTIC Techs




