首页 > 解决方案 > 使用 Bazel 运行 Android 应用程序时构建失败

问题描述

我正在尝试按照此处给出的教程使用 Bazel 构建 Android 应用程序: https ://docs.bazel.build/versions/master/tutorial/android-app.html 。该应用程序正在使用以下命令成功构建:

bazel build //src/main:app

但是,当我尝试使用该命令运行应用程序时bazel mobile-install //src/main:app ,构建失败并出现以下错误:

信息:分析的目标 //src/main:app(加载了 0 个包,配置了 0 个目标)。信息:找到 1 个目标...错误:/Users/kanzashaikh/examples/android/tutorial/src/main/BUILD:1:15:安装 //src/main:app 失败:(退出 1):incremental_install 失败:错误执行命令 bazel-out/darwin-py2-opt-exec-2B5CBBC6/bin/external/bazel_tools/tools/android/incremental_install --output_marker bazel-out/darwin-fastbuild/bin/src/main/app_files/full_deploy_marker --dexmanifest ...(剩余 11 个参数被跳过) Traceback(最近一次调用最后一次):文件“/private/var/tmp/_bazel_kanzashaikh/df06cea5303c222cca918b7a24c9d8ca/execroot/ main/bazel-out/darwin-py2-opt-exec-2B5CBBC6/bin/external/bazel_tools/tools/android/incremental_install.runfiles/bazel_tools/tools/android/incremental_install.py”,第 25 行,来自并发导入期货 ImportError: No module named concurrent Target //src/main:app failed to build 使用 --verbose_failures 查看失败构建步骤的命令行 INFO: Elapsed time: 0.311s, Critical Path: 0.19s INFO: 3 processes: 3 internal.失败:构建未成功完成

如何解决这个问题?

标签: androidmacosbuildandroid-emulatorbazel

解决方案


看起来 bazel 正在使用 python2(来自文件路径的py2from darwin-py2-opt-exec-2B5CBBC6),但from concurrent import futures在 incremental_install.py 中在 python2 中不起作用。

如果您没有安装 python3,请尝试安装它并查看是否可以解决问题。

如果您确实安装了 python3,请检查您的 bazel 版本,旧版本的 bazel 可能默认为 python2。


推荐阅读