You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动