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

如何在Android.bp文件中引入Jars和AARs?含AOSP预构建Jar导入需求

在AOSP中通过Android.bp导入预构建Jar包(如annotations.jar)的方法

两种常用实现方式

方式一:直接引用系统自带的预构建Jar

AOSP中自带的annotations.jar已经在系统预构建模块中定义完成,你可以直接在自己的模块里通过模块名引用,无需额外定义。

比如你的模块是java_library或android_app,修改Android.bp如下:

// 示例:Java库模块引用annotations
java_library {
    name: "my_custom_lib",
    srcs: ["src/**/*.java"],
    // 动态引用(运行时依赖系统提供的annotations)
    libs: ["annotations"],
    // 如果需要静态打包(把annotations的字节码合并到自己的模块),改用static_libs
    // static_libs: ["annotations"],
}
// 示例:Android应用模块引用annotations
android_app {
    name: "my_app",
    srcs: ["src/**/*.java"],
    resource_dirs: ["res"],
    static_libs: ["annotations"],
}

方式二:导入自定义预构建Jar(如自己存放的annotations.jar)

如果是你自行放置的预构建Jar,需要先定义prebuilt_java_library模块,再在业务模块中引用。

  1. 先在Android.bp中定义预构建模块:
prebuilt_java_library {
    name: "my_local_annotations",
    // 替换成你的Jar文件实际路径
    srcs: ["prebuilt/libs/annotations.jar"],
    // 设置可见性,允许其他模块引用
    visibility: ["//visibility:public"],
}
  1. 在业务模块中引用这个自定义预构建模块:
android_app {
    name: "my_app",
    srcs: ["src/**/*.java"],
    resource_dirs: ["res"],
    static_libs: ["my_local_annotations"],
}

注意事项

  • 确认系统模块名:可以在AOSP源码中搜索prebuilt_java_library { name: "annotations" },找到系统预构建模块的定义,确保引用的模块名正确。
  • 链接方式选择:libs是动态依赖,运行时由系统提供Jar;static_libs是静态打包,会把Jar的字节码合并到你的模块中,根据需求选择。
  • 可见性设置:自定义预构建模块必须设置visibility,否则其他模块无法引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:10:48