Mac M1 Pro上Android Studio无法找到SWIG的问题求助
解决MacBook上Android项目SWIG找不到的问题
先确认环境变量是否真的被Android Studio读取
Mac的GUI程序(比如Android Studio)不会自动继承终端的环境变量,你手动设置的SWIG_EXECUTABLE和SWIG_DIR可能没被AS加载。打开AS内置的Terminal,输入echo $SWIG_EXECUTABLE和echo $SWIG_DIR,如果没输出正确路径,说明AS没拿到变量。解决办法:- 编辑
~/.zprofile(zsh用户)或~/.bash_profile(bash用户),添加:export SWIG_EXECUTABLE=$(which swig) export SWIG_DIR=$(swig -swiglib) - 执行
source ~/.zprofile(对应你的配置文件),然后彻底重启Android Studio(不是最小化,是退出再打开)。
- 编辑
直接在CMakeLists.txt里硬编码SWIG路径(最稳妥的办法)
如果环境变量还是搞不定,跳过系统环境直接在CMake配置里指定:
在你的src/main/cpp/CMakeLists.txt最开头加:# 替换成你实际的SWIG路径,用终端which swig和swig -swiglib可以查到 set(SWIG_EXECUTABLE "/usr/local/bin/swig" CACHE FILEPATH "SWIG executable") set(SWIG_DIR "/usr/local/share/swig/4.1" CACHE PATH "SWIG library directory") find_package(SWIG REQUIRED) include(${SWIG_USE_FILE})检查CMake版本兼容性
CMake 3.10对SWIG 4.1的支持可能存在兼容问题,建议升级CMake版本:
在build.gradle的externalNativeBuild块里指定AS自带的高版本CMake:externalNativeBuild { cmake { path "${projectDir}/src/main/cpp/CMakeLists.txt" version "3.22.1" // 选Android Studio支持的最新兼容版本 } }同步项目后AS会自动下载对应版本,不用手动安装。
验证NDK与SWIG的适配
NDK 20版本较旧,确认你的SWIG是针对本地编译的正确版本,同时确保CMakeLists.txt里的SWIG模块配置没有遗漏include(${SWIG_USE_FILE})——这一步是加载SWIG的CMake工具链,没加的话即使找到SWIG也会出问题。
内容的提问来源于stack exchange,提问作者therxmv
相关产品推荐
相关产品推荐

