Mac M1构建MediaPipe Android AAR失败,求解决方法
解决Mac Pro M1上MediaPipe Android AAR构建的模糊匹配错误
问题本质
Mac Pro M1完全支持构建MediaPipe Android AAR,你遇到的报错是交叉编译时Bazel同时匹配了Android和macos的配置规则,导致//mediapipe/gpu:gl_base的linkopts属性出现冲突,属于配置层面的问题,而非架构不支持。
解决步骤
明确指定目标平台与架构
构建时强制指定Android目标平台,避免Bazel自动匹配本地macos配置,修改构建命令如下:bazel build -c opt --config=android_arm64 //mediapipe/examples/android/src/java/com/google/mediapipe/examples/[你的示例模块]:aar将
[你的示例模块]替换为实际要构建的模块名称,比如hands或face_detection。清理Bazel缓存
旧缓存可能残留错误配置,先彻底清理再重新构建:bazel clean --expunge适配MediaPipe版本
确保使用的MediaPipe版本适配M1架构与Android交叉编译,建议切换至0.8.10及以上的稳定版本。强制配置交叉编译规则
若上述方法无效,可修改项目根目录的.bazelrc文件,添加以下配置强制指定交叉编译平台:build --host_platform=@bazel_tools//platforms:darwin_arm64 build --platforms=@androidsdk//:android_arm64
验证方式
执行修改后的构建命令,若不再出现linkopts模糊匹配错误,且在bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/examples/[你的示例模块]/路径下生成对应的.aar文件,即说明问题已解决。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

