Как импортировать внешний модуль / зависимости, такие как Flic, в мой проект Android, который использует Bazel в качестве системы сборки? - PullRequest
1 голос
/ 27 мая 2019

Для импорта зависимости модуля в моем проекте Android, например.Для того чтобы сделать мое приложение совместимым с Flic, я должен импортировать весь проект Flic как зависимость модуля в моем существующем проекте Android.Он отлично работает при сборке с Gradle, но с Bazel выдает ошибку при импорте любого класса Flic.

1 Ответ

1 голос
/ 31 мая 2019

Я не знаком с Flic, но, глядя на инструкции здесь , похоже, что flic может зависеть от использования http_archive и написания небольшого android_library правила для него:

WORKSPACE:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
  name = "flic-android",
  # latest commit as of writing this answer
  url = "https://github.com/50ButtonsEach/fliclib-android/archive/ddfbfebfd5090bb2cc80a7e66c613134ffc4071a.zip",
  build_file = "@//:BUILD.flic-android",
  strip_prefix = "fliclib-android-ddfbfebfd5090bb2cc80a7e66c613134ffc4071a"
)

BUILD.flic-android (поместите это рядом с файлом WORKSPACE):

package(default_visibility = ["//visibility:public"])

android_library(
  name = "flic",
  manifest = "fliclib/src/main/AndroidManifest.xml",
  srcs = glob(["fliclib/src/main/java/io/flic/lib/*.java"]),

  idl_srcs =        glob(["fliclib/src/main/aidl/io/flic/lib/*.aidl"]),
  # "external/flic-android" must be included in the import root because this
  # rule is being evaluated in an external repository
  idl_import_root = "external/flic-android/fliclib/src/main/aidl",

  custom_package = "io.flic.lib",
)

Наконец, добавьте "@flic-android//:flic" к deps любых android_binary или android_library правил, использующих Flic.

(Примечание: файл flic build.gradle file указан com.android.support:appcompat-v7:22.1.1 в качестве зависимости времени компиляции, но это неПохоже, что это не нужно для компиляции библиотеки, поэтому я не включил это здесь)

...