0

我正在尝试将自定义 apk 构建到使用一些外部库(如 Firebase、Glide 等)的 AOSP 构建中。

在 AOSP 和 LineageOS 等其他项目中研究示例项目,将依赖项添加到 Android.bp 中,如下所示,例如:

构建.gradle

dependencies {
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}

安卓.bp

android_app {
    ...
    static_libs: [
      "com.google.android.material_material"
      "androidx.recyclerview_recyclerview"
      "androidx-constraintlayout_constraintlayout"
    ],

    srcs: ["src/**/*.kt"],
    resource_dirs: ["res"],
}

对于 Firebase 和 Glide,我尝试添加Android.bp如下:

android_app {
    ...
    static_libs: [
      "com.google.android.material_material",
      "androidx.recyclerview_recyclerview",
      "androidx-constraintlayout_constraintlayout",
      "com.google.firebase_firebase-core",
      "com.github.bumptech.glide_glide"
    ],

    srcs: ["src/**/*.kt"],
    resource_dirs: ["res"],
}

但这不起作用,抛出如下错误:

error: vendor/manufacturer/appname/Android.bp:1:1 "appname" depends on undefined module "com.google.firebase_firebase-core"
error: vendor/manufacturer/appname/Android.bp:1:1 "appname" depends on undefined module "com.github.bumptech.glide_glide"

还注意到Android.bp命名约定与constraintlayout的不同之处recyclerview,为什么它不是 a.而是 a-以及关于如何添加依赖项的所有这些命名约定在哪里记录?

我在哪里可以找到更多关于如何添加第三方库的文档,非常感谢任何帮助指针!

构建环境:

Ubuntu 18.04
AOSP - 10_r39
4

1 回答 1

1

在 AOSP 中,您不能使用“Gradle 方式”将其添加到build.gradle中,然后让构建工具从存储库 ( j Center/ Maven Central etc.) 中获取模块。
对于 AOSP,您必须自己在构建系统中添加这些依赖模块。
在您的情况下,创建两个模块(com.google.firebase_firebase-corecom.github.bumptech.glide_glide),为它们添加 Android.mk 或 Android.bp(使用您想要的模块名称,然后您可以在 Android.bp 中引用它们。

例如,查看它是如何添加的com.google.android.material_material
https ://cs.android.com/android/platform/superproject/+/master:prebuilts/sdk/current/extras/material-design-x/Android.bp

于 2020-07-19T15:19:36.053 回答