Android.bp 和 ninja:错误:未知目标

Vit*_*iev 5 android android-source

packages/apps在 Android O 的供应商目录下有一个应用程序。该应用程序依赖于 HIDL 接口,该接口作为 Java 库添加。

如果我用Android.mk文件构建应用程序,它构建得很好。如果我使用Android.bp文件构建应用程序,隐藏Android.mk,它不会构建并失败并出现错误:

忍者:错误:未知目标 'MODULES-IN-vendor-${vendor_name}-apps-${app_name}',你的意思是 'MODULES-IN-vendor-${vendor_name}-apps-${another_app_name}'?

或者它可以只是

忍者:错误:未知目标 'MODULES-IN-vendor-${vendor_name}-apps-${app_name}'

我的Android.bp样子:

android_app {

    java_libs: ["some.hidl.lib-V1.0-java"],

    java_static_libs: ["android.hidl.base-V1.0-java-static"],

    srcs: ["**/*.java"],

    android_resource_dirs: ["res/**"],

    name: "MyApplication",

    module_name: "MyApplication",

    package_name: "me.myself.MyApplication", // also tried just the name as it is done in Android.mk

    enabled: true,

    proguard_enabled: disabled

}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

小智 3

不知道你这个问题解决了没有,我也遇到过这样的问题。这是由于 Android 仅尝试包含 3 级文件夹中的“Android.bp”文件,该文件在根文件夹下的“Android.bp”中定义:

optional_subdirs = [
    ....
    "vendor/*/*",
]
Run Code Online (Sandbox Code Playgroud)

因此,您需要将一个“Android.bp”添加到供应商/供应商名称/包中,并指定可选的子目录或仅使用上面的通配符。

  • 与 Android10 一样,您不需要在 AOSP 根目录下的“Android.bp”中显式添加“Optional_subdirs”。“Soong 发现源树中的所有 Android.bp 和 Blueprints 文件,subdirs= 和 optional_subdirs= 已过时,并且此文件不再需要可能包含 Android.bp 文件的顶级目录列表。” (2认同)