android - 使用 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.失败:构建未成功完成
如何解决这个问题?
解决方案
看起来 bazel 正在使用 python2(来自文件路径的py2
from darwin-py2-opt-exec-2B5CBBC6
),但from concurrent import futures
在 incremental_install.py 中在 python2 中不起作用。
如果您没有安装 python3,请尝试安装它并查看是否可以解决问题。
如果您确实安装了 python3,请检查您的 bazel 版本,旧版本的 bazel 可能默认为 python2。
推荐阅读
- javascript - Vuejs多个vue实例,抛出未定义
- node.js - 使用 oAuth2 时缺少 google sheet api 密钥
- docker - devcontainer,如何使 X 显示工作(在 Visual Studio 代码中的 docker 内安装图形)
- android-navigation - 使用视图绑定导航
- python - Python:删除重复的字符串并保持在某些参数内
- python - 如何从篮球参考资料中获取阵容?
- python - 带有整数的模板的 Cython 绑定
- java - 广播接收器,¿我做得对吗?
- java - 即使我完成了活动,firebase 连接是否仍然处于活动状态?
- node.js - Nodejs cors 允许某些路由的所有来源