Browse files

Update the Bazel sample app to demonstrate the support library syntax.

Also removes some outdated comments in the

PiperOrigin-RevId: 142705870
  • Loading branch information...
1 parent ac00776 commit aa4ca94d7b44e6a776e46ed50d9b245058e8b9de @aj-michael aj-michael committed with aehlig Dec 21, 2016
@@ -5,22 +5,20 @@ android_sdk_repository(
path="<full path to your Android SDK>",
api_level=<api level>,
- build_tools_version="<build tools version>")
path="<path to your Android NDK>",
- api_level=<api_level>)
+ api_level=<api_level>,
-For the `android_sdk_repository` rule, the values of the `api_level` and
-`build_tools_version` attributes correspond, respectively, to directories
-containing specific versions of the `android.jar` file and build tools. For
-example, if `path=/Users/xyzzy/Library/Android/sdk`,
-`api_level=21`, and `build_tools_version="21.1.1"` (note that
-quotes are required in the second case), then your SDK must contain the
-`/Users/xyzzy/Library/Android/sdk/platforms/android-21` and
+For the `android_sdk_repository` rule, the value of `api_level` corresponds to
+a directory in the SDK containing the specific version of `android.jar` to
+compile against. For example, if `path = "/Users/xyzzy/Library/Android/sdk"` and
+`api_level = 21`, then the directory
+`/Users/xyzzy/Library/Android/sdk/platforms/android-21` must exist.
Similarly, for the `android_ndk_repository` rule, the value of the `api_level`
attribute corresponds to a directory containing the NDK libraries for that
@@ -29,17 +27,17 @@ API level. For example, if
`api_level=21`, then you your NDK must contain the directory
+The example `android_binary` depends on
+`@androidsdk//`, so you will need to
+install the Google Support Libraries version 25.0.0 from the Android SDK
The following command can be used to build the example app:
bazel build //examples/android/java/bazel:hello_world
-Yes, we know that this is a little clunky. We are working on the following things (and more):
- * Supporting other architectures than `armeabi-v7a` and compilers other than GCC 4.9
- * Eliminating the big ugly deprecation message from the console output of Bazel
We also have a nice way to speed up the edit-compile-install development cycle for physical Android devices and emulators: Bazel knows what code changed since the last build, and can use this knowledge to install only the changed code to the device. This currently works with L devices and changes to Java code and Android resources. To try this out, take an `android_binary` rule and:
* Set the `proguard_specs` attribute to `[]` (the empty list) or just omit it altogether
@@ -8,7 +8,8 @@
android:targetSdkVersion="21" />
- android:label="Bazel App" >
+ android:label="Bazel App"
+ android:theme="@style/MyTheme" >
android:label="Bazel" >
@@ -15,11 +15,12 @@ android_binary(
- legacy_native_support = 0,
manifest = "AndroidManifest.xml",
+ resource_files = glob(["res/**"]),
deps = [
+ "@androidsdk//",
@@ -1,13 +1,13 @@
package bazel;
import android.os.Bundle;
import android.util.Log;
* Main class for the Bazel Android "Hello, World" app.
-public class MainActivity extends Activity {
+public class MainActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+ <item name="primary" type="color">#FF99CC00</item>
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+ <style name="MyTheme" parent="Theme.AppCompat">
+ <item name="colorPrimary">@color/primary</item>
+ </style>

0 comments on commit aa4ca94

Please sign in to comment.