Ошибка при сборке проекта Android с параметром --incompatible_disable_native_android_rules - PullRequest
1 голос
/ 30 июня 2019

Когда я пытаюсь построить свой проект с --incompatible_disable_native_android_rules, я получаю следующую ошибку:

ERROR: /home/user/.cache/bazel/_bazel_user/aee0be3e153556afb3ddc0b7aea89213
/external/androidsdk/BUILD.bazel:8:1: in tags attribute of android_sdk 
rule @androidsdk//:sdk-28: The native Android rules are deprecated. 
Please use the Starlark Android rules by adding the following load statement 
to the BUILD file: load("@build_bazel_rules_android//android:rules.bzl",
"android_sdk"). See <a href="http://github.com/bazelbuild/rules_android" rel="nofollow noreferrer">http://github.com/bazelbuild/rules_android</a>.. 
Since this rule was created by the macro 'create_android_sdk_rules', 
the error might have been caused by the macro implementation in
/home/user/.cache/bazel/_bazel_user/aee0be3e153556afb3ddc0b7aea89213/
external/androidsdk/BUILD.bazel:8:1
.

После установки Bazel 0.27 я использую

load("@rules_android//android:rules.bzl", android_sdk_repository_rule = "android_sdk_repository")
...
def my_sdk_rule(name = None, api_level = None, build_tools_version = None):    
    android_sdk_repository_rule(
        name = name,
        api_level = api_level,
        build_tools_version = build_tools_version,
    )

как описано в https://github.com/bazelbuild/bazel/issues/8391.

Кто-нибудь сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 11 июля 2019

Это потому, что правило рабочего пространства android_sdk_repository генерирует собственные правила android_sdk: https://github.com/bazelbuild/bazel/blob/ebfd3bcb0baec0774db584fd3ff5445a1ec7925b/tools/android/android_sdk_repository_template.bzl#L107

См. https://github.com/bazelbuild/bazel/issues/8757 для обновлений.

...