Android-aar与jar的生成与使用,从0到1记录

47 阅读1分钟

Android-aar与jar的生成与使用,从0到1记录

一、生成

生成AAR:

点击 Android Studio 右侧的Gradle面板,展开‘目标库’模块的Tasks > build。 双击assemble任务(或分别执行assembleDebug/assembleRelease生成对应变体的 AAR)。 生成成功后,AAR 文件位于模块的build/outputs/aar/目录下,例如: Debug 变体:library-module-debug.aar,Release 变体:library-module-release.aar。

生成JAR:

点击 Android Studio 右侧的Gradle面板,展开‘目标库’模块的Tasks > build。 双击debugSourcesJar与releaseSourcesJar任务。 生成成功后,JAR 文件位于模块的build/libs/目录下,例如: Debug 变体:lib_common-debug-sources.jar,Release 变体:lib_common-sources.jar。

温馨提示 tips:
  • 文件位置: AAR 文件应放在模块的 libs 目录(如 app/libs/),不是项目根目录。
  • 同步项目: 修改后点击 Android Studio 右上角的 Sync Now 同步 Gradle。
  • 依赖传递性(AAR、JAR 只是一个二进制打包格式,不会自动传递它的依赖): AAR 不会自动包含其依赖项,需手动添加其所需的库(查看 AAR 提供的文档)。
  • 版本冲突: 如果 AAR 包含的库与项目其他依赖冲突,可使用 exclude 或强制版本。举个栗子:
implementation("com.example:library:1.0") {
    exclude(group = "com.conflict", module = "library")
}
  • ProGuard规则: 如果 AAR 需要特殊混淆规则,将其规则添加到 proguard-rules.pro 文件中。

二、使用jar、aar:

repositories {
    // 添加本地仓库路径
    flatDir {
        dirs("app/libs",....) // 指定 AAR 存放目录
    }
}

dependencies {
    // 添加 libs 目录下所有 AAR\JAR 文件
    implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar", "*.jar"))))
    // 引入特定 JAR
    implementation(files("libs/gson-2.8.9.jar"))
     // 引用 AAR-直接文件引用
    implementation(files("libs/mylibrary.aar"))
    // 引用 AAR
    implementation(name = "mylibrary", ext = "aar")
    // 引用 AAR(kts)
    implementation(mapOf(
        "name" to "mylibrary",
        "ext" to "aar"
    ))
}