当前位置: 首页 > 知识库问答 >
问题:

从bazel 3.6.0切换到3.7.0时如何解析@bazel_tools//tools/android:databinding_exec

颜安宁
2023-03-14
build:androidbuild --crosstool_top=@androidndk//:default_crosstool
build:androidbuild --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
build:android-32 --config=androidbuild --cpu=x86 --fat_apk_cpu=x86

查看3.6.0与3.7.0的更改,我想知道tools/android/android_sdk_repository_template.bzl中新的create_dummy_sdk_toolchain调用是否会导致此失败,或者我还缺少其他东西(比如cc_flags_supplier.bzl/compiler_flag.bzl源代码中将incompatible_use_toolchain_transition设置为True的更改)。

我尝试了使用--Platforms的方法,但即使在这种情况下,我仍然得到错误:

build:androidbuild --extra_toolchains=@androidndk//:all
build:android-32 --config=androidbuild --cpu=x86 --platforms=//config:android_x86

与:

platform(
    name = "android_x86",
    constraint_values = [
        "@bazel_tools//platforms:x86_32",
        "@bazel_tools//platforms:android",
    ],
    cpu_constraints = [
    ],
    os_constraints = [
    ],
    target_platform = True,
)

错误:

错误:解析target@bazel_tools//tools/android:instrumentation_test_check:没有为types@bazel_tools//tools/cpp:toolchain_type找到匹配的工具链。也许--incompatible_use_cc_configure_from_rules_cc已经被翻转,并且工作区文件中没有添加默认的C++工具链?有关详细信息和迁移说明,请参见https://github.com/bazelbuild/bazel/issues/10134。

工作区:

register_execution_platforms(
    "//tools/config:host_platform",
)

在生成文件中:

platform(
    name = "host_platform",
    constraint_values = [
    ],
    cpu_constraints = [
        "@bazel_tools//platforms:x86_32",
        "@bazel_tools//platforms:x86_64",
    ],
    host_platform = True,
    os_constraints = [
        "@bazel_tools//platforms:windows",
    ],
)

出于某种原因,即使主机是Linux也可以在Bazel3.6.0中工作,但在3.7.0中不再工作了。

共有1个答案

云欣嘉
2023-03-14

问题是由以下代码引起的:

工作区:

register_execution_platforms(
    "//tools/config:host_platform",
)

在生成文件中:

platform(
    name = "host_platform",
    constraint_values = [
    ],
    cpu_constraints = [
        "@bazel_tools//platforms:x86_32",
        "@bazel_tools//platforms:x86_64",
    ],
    host_platform = True,
    os_constraints = [
        "@bazel_tools//platforms:windows",
    ],
)
 类似资料:
  • 问题内容: 我正在创建一个Android应用程序,并通过HttpClient将数据从Android应用程序发送到servlet。我使用HttpPost方法。 我在Android开发人员网站上了解到,Apache HttpClient库在Android Froyo 2.2中存在一些错误,毕竟使用HttpUrlConnection而不是HttpPost是一个好习惯。所以我想将我的HttpPost代码转

  • 关于AES有很多问题,但我有以下问题。我目前正在使用以下 AES 实现来加密数据 结果是32字节(256位)。所以我使用的是AES-256。这个实现对我来说太慢了。我如何切换到AES-128?我不需要任何填充或操作模式或密钥散列。 提前谢谢你。

  • 我有一个Java 7项目,它大量使用Javascript编写各种功能的脚本。到目前为止,我一直使用Rhino作为脚本引擎。我现在想转到Java 8,这也意味着我将用Nashorn取代Rhino。 Nashorn与Rhino的兼容性如何?我可以将其用作直接替换,还是我可以预期我的一些脚本将不再工作,需要移植到新引擎?Rhino是否有Nashorn不支持的常用功能?

  • 我目前正在开发一款只使用2D图形的游戏。 在游戏中,我广泛使用android的来显示我的图形。我听说,使用硬件加速图形,我可以使用它来提高我的应用程序的性能,而不是使用当前的。 目前,我有一个扩展的类,当我自己的线程类扩展调用和方法时,它会更新和渲染游戏状态。线程基本上帮助我保持几乎恒定的FPS。 现在的问题是:我如何从更改为,并调用方法从线程更新和渲染游戏状态,以仍然控制FPS。我阅读了Open

  • Java(TM)SE运行时环境(构建1.8.0_102-B14) Java HotSpot(TM)64位服务器VM(构建25.102-B14,混合模式) 我知道jdk11不包含jre,但是我如何在java 11中从cmd运行java程序呢

  • Nerv 提供了比 React 更好的浏览器兼容性和更高的性能,与此同时也不会放弃 React 庞大的生态系统。兼容 React 生态系统是我们开发 Nerv 的重要目标之一。 假设我们有这样一段代码: var React = require('react'); var ReactDOM = require('react-dom'); class MyComponent extends Reac