You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio构建Google Filament仓库报CMake找不到源文件错误

构建Google Filament时提示找不到uberarchive.h的解决方案

报错截图

问题描述

新手构建Filament仓库时,每次执行构建操作都会触发CMake错误,核心报错信息如下:

CMake Error at /Users/tomas/AndroidStudioProjects/06.Filament/android/gltfio-android/CMakeLists.txt:109 (add_library):
Cannot find source file:
/Users/tomas/AndroidStudioProjects/06.Filament/out/android-release/filament/include/gltfio/materials/uberarchive.h
Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
.hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc

问题根因

uberarchive.h不是仓库里预置的静态源码文件,是构建流程中通过材质编译工具自动生成的产物。直接跳转到Android模块单独构建时,会跳过前置的工具编译、材质生成步骤,CMake自然找不到对应头文件。

解决步骤

  • 先确认仓库依赖拉取完整,在Filament仓库根目录执行以下命令,拉取所有子模块(漏拉子模块后续所有构建步骤都会出问题):
    git submodule update --init --recursive
  • 别直接用Android Studio导入android目录就点构建按钮,AS默认不会执行Filament要求的前置构建任务,必须先走官方提供的构建脚本:
    1. 先构建桌面端release版本,生成材质编译需要的matc等工具链:
      ./build.sh -p desktop release
    2. 等桌面端构建跑完,再执行Android端release构建,脚本会自动跑完材质编译、头文件生成的全流程,不会再报找不到文件的错:
      ./build.sh -p android release
  • 如果走完上面两步还是报同样的错,手动触发材质生成的构建目标就行:
    进入构建输出目录out/android-release,执行命令单独编译gltfio材质模块:
    cmake --build . --target gltfio_materials
    命令执行完成后,uberarchive.h就会生成到报错提示的对应路径,此时再重新执行Android构建就能正常通过。

注意避坑

  • Filament全量构建要预留至少20G空闲磁盘空间,空间不够的时候材质生成步骤会静默失败,一样会报头文件找不到
  • Windows环境下必须用WSL2执行构建脚本,原生CMD/PowerShell有路径兼容问题,会导致文件生成路径不对
  • 别想着跳过桌面端构建直接编Android版本,Android构建流程依赖桌面端产出的编译工具,跳过必错

内容的提问来源于stack exchange,提问作者Tommy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 18:06:18