load("@build_bazel_rules_android//android:rules.bzl", "android_binary", "android_library") load("@rules_cc//cc:defs.bzl", "cc_library") load("@rules_rust//rust:defs.bzl", "rust_library") rust_library( name = "rust_lib", srcs = ["demo.rs"], edition = "2018", ) cc_library( name = "jni_shim", srcs = ["android_link_hack.c"], # Required because of https://github.com/bazelbuild/rules_rust/issues/1271 linkopts = [ "-lm", # Required to avoid dlopen runtime failures unrelated to rust ], deps = [":rust_lib"], alwayslink = True, # Required since JNI symbols appear to be unused ) android_library( name = "android_main", srcs = [ "AndroidMain.java", "JniShim.java", ], custom_package = "com.example.androidapp", manifest = "AndroidManifest.xml", resource_files = ["res/layout/android_main.xml"], deps = [":jni_shim"], ) android_binary( name = "android_app", custom_package = "com.example.androidapp", manifest = "AndroidManifest.xml", deps = [":android_main"], ) platform( name = "arm64-v8a", constraint_values = [ "@platforms//cpu:arm64", "@platforms//os:android", ], )