无法在 Android 上通过 Mac OS 编译 mediapipe

Jac*_*ile 2 android bazel mediapipe

我第一次尝试构建 mediapipe 项目,通读https://google.github.io/mediapipe/getting_started/android.html,但无法让 bazel 成功完成,到目前为止使用选项 1。

根据错误,文件夹dx.jar中缺少该文件/private/var/tmp/_bazel_ted/4a399cb8dd247974fabba333258e1f5f/external/androidsdk/build-tools/31.0.0-rc5/lib(如下)。文件名是否已更改为 d8.jar?

-rw-r--r--   1 ted  staff   965K Jun 10 12:54 apksigner.jar
-rw-r--r--   1 ted  staff   5.8M Jun 10 12:54 d8.jar
-rw-r--r--   1 ted  staff    28K Jun 10 12:54 shrinkedAndroid.jar
Run Code Online (Sandbox Code Playgroud)

我更喜欢使用 Android Studio(选项 2),但我使用它的单独构建也失败了。

如果我遗漏了任何可以帮助识别问题的信息,请告诉我。谢谢。

版本

  • bazel 4.1.0-自制软件
  • Python 3.9.5
  • MacOS 大苏尔 11.4
  • ANDROID_HOME = /Users/ted/Library/Android/sdk
  • ANDROID_NDK_HOME = /Users/ted/Library/Android/sdk/ndk/21.4.7075529
  • JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home

输出

% bazel build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'com_google_absl' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'com_google_protobuf' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'com_google_googletest' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'com_github_gflags_gflags' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'build_bazel_rules_apple' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'build_bazel_rules_swift' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'build_bazel_apple_support' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'bazel_skylib' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'pybind11' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/tf_runtime/third_party/cuda/dependencies.bzl:51:10: The following command will download NVIDIA proprietary software. By using the software you agree to comply with the terms of the license agreement that accompanies the software. If you do not agree to the terms of the license agreement, do not use the software.
INFO: Analyzed target //mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu (179 packages loaded, 16257 targets configured).
INFO: Found 1 target...
INFO: From ProtoCompile mediapipe/calculators/util/collection_has_min_size_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/rect_to_render_data_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/annotation_overlay_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/detections_to_render_data_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/constant_side_packet_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tflite/ssd_anchors_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/split_vector_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/flow_limiter_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/labels_to_render_data_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/landmark_projection_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/non_max_suppression_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tflite/tflite_custom_op_resolver_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/detections_to_rects_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tflite/tflite_custom_op_resolver_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/internal/callback_packet_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/tool/calculator_graph_template.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/gpu/gl_context_options.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/calculator_profile.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/landmarks_to_render_data_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tflite/ssd_anchors_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/tensors_to_landmarks_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/tensors_to_classification_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/tensors_to_floats_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
ERROR: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/androidsdk/BUILD.bazel:13:25: Extracting interface @androidsdk//:dx_jar_import failed: missing input file 'external/androidsdk/build-tools/31.0.0-rc5/lib/dx.jar', owner: '@androidsdk//:build-tools/31.0.0-rc5/lib/dx.jar'
Target //mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu failed to build
Use --verbose_failures to see the command lines of failed build steps.
ERROR: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/androidsdk/BUILD.bazel:13:25 Extracting interface @androidsdk//:dx_jar_import failed: 1 input file(s) do not exist
INFO: Elapsed time: 22.063s, Critical Path: 12.97s
INFO: 364 processes: 192 internal, 172 darwin-sandbox.
FAILED: Build did NOT complete successfully
579 mediapipe1 (master) > rehash
580 mediapipe1 (master) > bazel build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'com_google_absl' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'com_google_protobuf' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'com_google_googletest' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'com_github_gflags_gflags' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'build_bazel_rules_apple' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'build_bazel_rules_swift' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'build_bazel_apple_support' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'bazel_skylib' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/org_tensorflow/third_party/repo.bzl:108:14: 
Warning: skipping import of repository 'pybind11' because it already exists.
DEBUG: /private/var/tmp/_bazel_ted/a2941b1f43fe20e22cb2ef5eec9c5c26/external/tf_runtime/third_party/cuda/dependencies.bzl:51:10: The following command will download NVIDIA proprietary software. By using the software you agree to comply with the terms of the license agreement that accompanies the software. If you do not agree to the terms of the license agreement, do not use the software.
INFO: Analyzed target //mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
INFO: From ProtoCompile mediapipe/calculators/util/thresholding_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/tensors_to_landmarks_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/image_to_tensor_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/thresholding_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/gate_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/tensors_to_floats_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/image_to_tensor_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/inference_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/split_vector_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/calculator_profile.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/tensors_to_classification_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/clip_vector_size_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/inference_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/rect_transformation_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/framework/tool/calculator_graph_template.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/internal/callback_packet_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/clip_vector_size_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/constant_side_packet_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/tensors_to_detections_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/association_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/flow_limiter_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/collection_has_min_size_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/non_max_suppression_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/landmark_projection_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/tensor/tensors_to_detections_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/rect_transformation_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/gpu/gl_context_options.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/detections_to_render_data_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/annotation_overlay_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/labels_to_render_data_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/landmarks_to_render_data_calculator.pb.h [for host]:
bazel-out/host/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/gpu/gl_surface_sink_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/association_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/detections_to_rects_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/core/gate_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From ProtoCompile mediapipe/calculators/util/rect_to_render_data_calculator.pb.h:
bazel-out/android-arm64-v8a-opt/bin/external/com_google_protobuf/src: warning: directory does not exist.
INFO: From Compiling mediapipe/framework/tool/text_to_binary_graph.cc [for host]:
In file included from mediapipe/framework/tool/text_to_binary_graph.cc:27:
In file included from ./mediapipe/framework/port/ret_check.h:18:
In file included from ./mediapipe/framework/deps/ret_check.h:19:
./mediapipe/framework/deps/status_builder.h:77:12: warning: 'Status' is deprecated: Use absl::Status directly [-Wdeprecated-declarations]
  operator Status() const&;
           ^
./mediapipe/framework/deps/status.h:30:14: note: 'Status' has been explicitly marked deprecated here
using Status ABSL_DEPRECATED("Use absl::Status directly") = absl::Status;
             ^
external/com_google_absl/absl/base/attributes.h:649:49: note: expanded from macro 'ABSL_DEPRECATED'
#define ABSL_DEPRECATED(message) __attribute__((deprecated(message)))
                                                ^
In file included from mediapipe/framework/tool/text_to_binary_graph.cc:27:
In file included from ./mediapipe/framework/port/ret_check.h:18:
In file included from ./mediapipe/framework/deps/ret_check.h:19:
./mediapipe/framework/deps/status_builder.h:78:12: warning: 'Status' is deprecated: Use absl::Status directly [-Wdeprecated-declarations]
  operator Status() &&;
           ^
./mediapipe/framework/deps/status.h:30:14: note: 'Status' has been explicitly marked deprecated here
using Status ABSL_DEPRECATED("Use absl::Status directly") = absl::Status;
             ^
external/com_google_absl/absl/bas