无法将预构建APK添加至A13 AOSP构建,未输出至out目录
解决A13 AOSP全量构建未包含预构建APK的问题
核心原因
单独执行mm能成功编译并复制APK,但全量make时未包含,说明你的test_app模块未被添加到当前产品的构建打包列表中,Android.bp本身配置是有效的。
解决方案
1. 将模块添加到产品配置
找到你产品对应的配置文件(通常在device/company/product/下,比如[你的产品名].mk或product.mk),添加以下内容:
PRODUCT_PACKAGES += test_app
如果你的APK是privileged类型(已在Android.bp中设置privileged: true),无需额外配置PRODUCT_PRIVILEGED_APP_PACKAGES,android_app_import的privileged属性会自动将APK放到系统的priv-app目录。
2. 检查模块可见性(Visibility)
如果你的Android.bp中没有设置visibility字段,默认是//visibility:private,这意味着只有当前目录下的模块能引用它,产品配置无法识别。需要修改Android.bp,添加合适的可见性:
android_app_import { name: "test_app", apk: "test_app.apk", presigned: true, privileged: true, // 允许产品配置所在目录及其子包引用 visibility: ["//device/company/product:__subpackages__"], }
如果只是测试,也可以临时设置为visibility: ["//visibility:public"](不推荐正式环境使用)。
3. 确认产品配置被正确加载
检查device/company/product/AndroidProducts.mk文件,确保你的产品配置mk被正确包含,比如:
PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/[你的产品名].mk
4. 验证与排查
- 执行
make help | grep test_app,如果能找到该模块,说明产品配置已正确引用;如果找不到,回到步骤1检查配置。 - 查看out目录下的构建日志(如
out/build.log),搜索test_app,确认是否有被跳过的条件提示。
内容的提问来源于stack exchange,提问作者ktom79
相关产品推荐
相关产品推荐

