首页 > 解决方案 > AOSP 添加预建 APK - 错误未知目标

问题描述

我正在制作 LineageOS 17.0 的个人版本,我想在其中包含一些预构建的 APK。为此,我有一个单独的文件夹“vendor/apps”,其中包含两个文件 apps-vendor.mk 和 Android。 mk,还有一个我存储 APK 文件的子文件夹“app”。这是在此线程Add prebuilt apk to AOSP build的帮助下完成的。

现在,虽然我已经成功地包含了许多 APK,例如 Blokada、FDroid,但我时不时地遇到一个我根本无法添加到构建中的 APK,例如 TotalCommander。

如果我通过正常的构建过程,它根本不会被添加。如果我使用例如“mma TotalCommander”,我会收到一条错误消息“FAILED: ninja: unknown target 'TotalCommander'”。

以下是我在我的 apps-vendor.mk 文件中包含的内容:

    Blokada \
    FDroid \
    F-DroidPrivilegedExtension \
    VLC \
    WaveUp \
    YouTubeVancedMicroG \
    YouTubeVanced \
    TotalCommander

这是我的 Android.mk 文件的摘录:


# Custom added apps
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := Blokada
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := app/Blokada.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := FDroid
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := app/FDroid.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := TotalCommander
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := app/TotalCommander.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)

etc ...

我尝试了一些不同的方法,例如将 APK 文件名换成一个正在工作的文件名,尝试使用不同的模块名(如 TC 等),所有这些都给出了相同的结果。

标签: androidapkprebuild

解决方案


我觉得很傻,但问题是这样的。我最初将文件夹直接放在供应商下,但后来我将该文件夹移动到父目录并对其进行符号链接。使用这样的符号链接,构建无法正常工作。我仍然检测到 vendor-apps.mk 文件,以及何时更改它,但它实际上并没有添加任何规则。


推荐阅读