在Android Studio中创建aar文件

And*_*ast 159 android jar android-studio aar

我想在Android Studio中为我的库创建一个aar文件,我会选择jar选项,但我的库有资源.

知道如何从库中创建aar文件吗?

Sco*_*rta 208

如果您的库被设置为Android库(即它使用apply plugin: 'com.android.library'其build.gradle文件中的语句),它将在构建时输出.aar.它将显示在模块目录的build/outputs/aar /目录中.

您可以在文件>新模块中选择"Android库"类型来创建新的Android库.

  • 请注意,要生成我的`aar`,我必须在Android Studio中执行`Build> Rebuild Project`.简单地运行,调试或构建APK不会为我生成"aar". (18认同)
  • @AdamJohns更快的方法是在终端选项卡中使用./gradlew moduleName:assembleRelease (5认同)
  • aar文件出现在app/build/outputs/aar /而不是项目级别的/ build /文件夹中!如果你没找到它...... (4认同)
  • 版本控制实际上是AAR本身的外部.您通常会设置一个具有版本信息的Maven pom文件. (3认同)

hcp*_*cpl 149

从本地构建中检索导出的.aar文件

如果你有一个定义为android库项目的模块,那么你将获得该项目目录中所有构建版本(默认情况下调试和发布)的.aar文件build/outputs/aar/.

your-library-project
    |- build
        |- outputs
            |- aar
                |- appframework-debug.aar
                 - appframework-release.aar
Run Code Online (Sandbox Code Playgroud)

如果这些文件不存在则启动构建

gradlew assemble
Run Code Online (Sandbox Code Playgroud)

图书馆项目细节

库项目有一个build.gradle包含的文件apply plugin: com.android.library.作为.aar文件打包的参考,你必须定义一些属性,如包和版本.

build.gradle库的示例文件(此示例包括发布中的模糊处理):

./gradlew assemble
Run Code Online (Sandbox Code Playgroud)

在项目中引用.aar文件

在您的应用程序项目中,您可以将此.aar文件放在该libs文件夹中,并build.gradle使用以下示例更新文件以引用此库:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "0.1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

:在引用的gradle当地相关文件替代方案,可以发现http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project

使用maven共享依赖项

如果您需要.aar在组织内共享这些文件,请查看maven.:有关这个主题的一个很好的写起来,可以发现https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-库AAR-跨越

关于.aar文件格式

aar文件只是一个.zip替代扩展和特定内容.有关详细信息,请查看有关aar格式的链接.

  • 精彩而详细的答案.'gradlew assemble`的+1 - 解决了我遇到的问题. (8认同)

j2e*_*nue 11

就像用户hcpl说的那样,但是如果你不想担心库的版本,你可以这样做:

dependencies {
    compile(name:'mylibrary', ext:'aar')
}
Run Code Online (Sandbox Code Playgroud)

因为每次必须更新版本都很烦人.此外,这使得名称空间不再那么令人担忧.


Tar*_*n A 8

创建 AAR

创建时请按照以下步骤操作。

File->New->New Module->Android Library and create.

生成 AAR

按照以下步骤转到 android studio 右上角窗格中的 gradle。

Gradle->Drop down library name -> tasks-> build-> assemble or assemble release

AAR 将在build/outputs/aar/ 中生成

但是,如果我们希望在项目目录中的特定文件夹中以您想要的名称生成 AAR,请修改您的应用程序级别,build.gradle如下所示

defaultConfig {
    minSdkVersion 26
    targetSdkVersion 28
    versionCode System.getenv("BUILD_NUMBER") as Integer ?: 1
    versionName "0.0.${versionCode}"


    libraryVariants.all { variant ->

        variant.outputs.all { output ->
            outputFileName = "/../../../../release/" + ("your_recommended_name.aar")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在它将在项目目录中创建名为“release”的文件夹,该文件夹将具有 AAR。

要将“ aar ”导入项目,请查看以下链接。

如何使用新的 Gradle Android 构建系统手动包含外部 aar 包


Dha*_*y M 5

同一线程中按照hcpl 的回答中提到的第一步和第二步之后,我们在 our-android-app-project-based-on-gradle/app/ 中添加了, '*.aar'], dir: 'libs' build.gradle 文件如下图:

...

dependencies {
       implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')

...
Run Code Online (Sandbox Code Playgroud)

我们的 gradle 版本是 com.android.tools.build:gradle:3.2.1