Mac编译Android版Mediapipe时Bazel报错platformclasspath.jar失败如何解决
解决方案
1. 修正JDK版本与环境变量配置
该报错核心为Bazel构建时无法正确识别符合要求的JDK环境,MediaPipe要求使用OpenJDK 11版本,不支持JDK 8、JDK 17及以上版本:
- 执行命令检查当前JDK版本:
java -version,若版本不符合,Mac设备可通过brew安装OpenJDK 11:brew install openjdk@11 - 执行命令配置当前shell的JAVA_HOME指向JDK 11:
export JAVA_HOME=$(/usr/libexec/java_home -v 11) - 执行
echo $JAVA_HOME确认路径配置生效后,清除Bazel历史缓存避免干扰:bazel clean --expunge - 重新执行构建命令测试。
2. 强制Bazel使用内置远程JDK
若本地JDK配置仍有冲突,可手动指定Bazel使用内置的远程JDK 11进行构建,无需依赖本地JDK环境:
- 在MediaPipe项目根目录的
.bazelrc文件末尾添加两行配置:
build --javabase=@bazel_tools//tools/jdk:remote_jdk11 build --host_javabase=@bazel_tools//tools/jdk:remote_jdk11
- 保存后执行
bazel clean --expunge清除缓存,重新执行构建命令测试。
3. 修正NDK API等级配置
你构建日志中的NDK API等级警告也可能引发连锁构建错误:
- 你使用的NDK 21.4版本最高支持API 29,需修改项目根目录
WORKSPACE文件中android_ndk_repository配置项的api_level参数值为29,与日志提示的适配等级保持一致。 - 修改完成后重新执行构建命令即可。
内容的提问来源于stack exchange,提问作者pekochun
相关产品推荐
相关产品推荐

