Bug: 181693809

Clone this repo:
  1. 5b733a7 Merge remote-tracking branch 'aosp/upstream-pre-alpha' into update-rules_android am: 219e8b42b9 am: dbcbbb2c9a am: 78dafa3af2 by Alex Humesky · 6 months ago master
  2. 78dafa3 Merge remote-tracking branch 'aosp/upstream-pre-alpha' into update-rules_android am: 219e8b42b9 am: dbcbbb2c9a by Alex Humesky · 6 months ago
  3. dbcbbb2 Merge remote-tracking branch 'aosp/upstream-pre-alpha' into update-rules_android am: 219e8b42b9 by Alex Humesky · 6 months ago android-s-qpr3-beta-1 android-s-v2-beta-3 android-t-preview-1 android-s-qpr3-beta-1 android-s-v2-beta-3 android-t-preview-1 android-t-preview-2
  4. 219e8b4 Merge remote-tracking branch 'aosp/upstream-pre-alpha' into update-rules_android by Alex Humesky · 6 months ago
  5. 15b32bf Use a default package when generating the android_local_test manifest. by Tim Peut · 6 months ago

Android support in Bazel

Disclaimer

NOTE: This branch contains a development preview of the Starlark implementation of Android rules for Bazel. This code is incomplete and may not function as-is.

A version of Bazel built at or near head and the following flags are necessary to use these rules:

--experimental_enable_android_migration_apis
--experimental_google_legacy_api
--incompatible_java_common_parameters
--android_databinding_use_v3_4_args
--experimental_android_databinding_v2

Overview

This repository contains the Starlark implementation of Android rules in Bazel.

The rules are being incrementally converted from their native implementations in the Bazel source tree.

For the list of Android rules, see the Bazel documentation.

Getting Started

To use the new Bazel Android rules, add the following to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
    name = "build_bazel_rules_android",
    urls = ["https://github.com/bazelbuild/rules_android/archive/refs/heads/pre-alpha.zip"],
    strip_prefix = "rules_android-pre-alpha",
)
load("@build_bazel_rules_android//:defs.bzl", "rules_android_workspace")
rules_android_workspace()

register_toolchains(
  "@build_bazel_rules_android//toolchains/android:android_default_toolchain",
  "@build_bazel_rules_android//toolchains/android_sdk:android_sdk_tools",
)

Then, in your BUILD files, import and use the rules:

load("@build_bazel_rules_android//rules:rules.bzl", "android_library")
android_library(
    ...
)