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

如何让Android Gradle项目优先依赖AAR而非JAR包?

如何在Android库项目中同时生成AAR和JAR包?

如果你的Android库项目(比如my-lib)没有包含任何Android资源,想要同时保留默认生成的AAR包,额外生成方便其他非Android系统(比如纯Java/Kotlin项目)使用的JAR包,可以通过修改库模块的build.gradle文件来实现。

直接在你的库模块build.gradle(注意不是项目根目录的那个)中添加以下配置:

android.libraryVariants.all { variant ->
    def name = variant.buildType.name
    def task = project.tasks.create "jar${name.capitalize()}", Jar
    task.dependsOn variant.javaCompile
    task.from variant.javaCompile.destinationDir
    artifacts.add('archives', task);
}

这段配置的具体作用:

  • 遍历项目中所有的库构建变体(通常是debug和release两种)
  • 为每个变体创建一个专属的Jar打包任务,命名规则是jarDebug、jarRelease,方便区分不同构建类型的产物
  • 让Jar任务依赖于对应变体的Java编译任务,确保只有当代码编译完成后才会执行打包操作,避免产物缺失
  • 指定Jar包的内容来源是Java编译后的class文件目录,保证打包的是最新编译的代码
  • 将生成的Jar包添加到项目的归档产物集合中,这样执行构建后就能在标准输出目录找到它

后续验证:

执行构建命令(比如./gradlew assemble)后,打开库模块的build/libs目录,你会看到:

  • 默认生成的AAR包:my-lib-debug.aar、my-lib-release.aar
  • 额外生成的JAR包:my-lib-debug.jar、my-lib-release.jar

因为你的库没有Android资源,生成的JAR包包含了所有业务逻辑代码,完全可以直接给其他纯Java/Kotlin项目引入使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:16:13