android - 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 等),所有这些都给出了相同的结果。
解决方案
我觉得很傻,但问题是这样的。我最初将文件夹直接放在供应商下,但后来我将该文件夹移动到父目录并对其进行符号链接。使用这样的符号链接,构建无法正常工作。我仍然检测到 vendor-apps.mk 文件,以及何时更改它,但它实际上并没有添加任何规则。
推荐阅读
- javascript - 使用 iframe 时会使用什么 url?
- salesforce - Salesforce 动态操作缺少编辑按钮突出显示面板
- reactjs - 使用 React 调用模拟键盘事件和测试 stopImmediatePropagation
- azure - 如何将多个 CloudBlockBlob 对象连接到 Azure 中的一个 CloudBlockBlob 对象?
- django - 按模板中的日期过滤
- python - 如何使用 map() 将列表中每个字符串的每个字符增加三倍,而不是将列表中的每个字符串增加三倍?
- jaxb - JAXB 解组问题(获取空列表)
- c++ - Visual Studio Code for MacOS 冻结在 C++ 中使用 map/set
- javascript - flask-oidc 要求登录 302 重定向实际上并未在反应中重定向
- swift - FileManager 返回带有 Nil 而不是文件的 url