You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 12下使用Android.bp构建静态Java库报错求助

问题分析与解决方案

这个错误的核心是:libvold尝试依赖libsysprop-vendor的**无分区(image字段为空)**静态链接变体,但该库仅提供了针对vendor.31和product.31分区的静态/共享变体,导致Soong构建系统无法匹配到所需依赖。

以下是几种可行的解决方案:


方案1:修正libvold的依赖变体匹配

打开system/vold/Android.bp,定位到第106行的libsysprop-vendor依赖声明,通过以下方式指定正确的变体:

  1. 直接指定静态变体:
deps: [
    "libsysprop-vendor:static",
    // 其他依赖...
],
  1. 若libvold本身属于vendor分区,在其模块定义中添加分区标识,让Soong自动匹配对应分区的依赖:
cc_library {
    name: "libvold",
    partition: "vendor", // 明确指定所属分区
    // 其他原有属性...
    deps: [
        "libsysprop-vendor",
        // 其他依赖...
    ],
}

方案2:单独构建目标静态jar库

如果你的核心需求只是构建自己定义的com.example.foo.player静态jar,无需触发全系统构建,直接执行以下命令:

m com.example.foo.player

该命令只会构建目标模块及其直接依赖,不会涉及libvold等系统模块,可直接绕过当前错误。


方案3:修改libsysprop-vendor的构建配置(不推荐)

若必须让libsysprop-vendor生成无分区的静态变体,找到其Android.bp文件(通常位于system/core/sysprop/或对应vendor目录),添加允许无分区构建的配置:

cc_library {
    name: "libsysprop-vendor",
    target: {
        android: {
            enabled: true,
        },
    },
    // 确保静态库生成规则
    static_libs: [],
    // 其他原有属性...
}

注意:这种修改可能破坏Android的分区隔离设计,仅在特殊场景下使用。

内容的提问来源于stack exchange,提问作者Shreyas R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:33:16