如何在AndroidStudio项目中添加和使用AAR

时间:2018-07-02 17:37:28

标签: java android android-gradle build.gradle aar

我正在尝试在我的android项目中使用自定义aar。我在StackOverflow和Web中找到了许多示例。许多构建失败,没有一个起作用。最清楚的是 http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/
那最接近工作了。

这就是我所做的

  1. 成功地从Ref.java创建了一个非常简单的AAR(Ref.aar)

    // Ref.java  
    package com.ramrod.Ref;  
    public class Ref {
        // Square an integer
        public static int
        square(int val) {
            return (val * val);
        }
    }  
    
  2. 创建一个测试项目(RefTest)

  3. 在RefTest / app下创建文件夹'libs'
  4. 将Ref.aar添加到库中
  5. 文件->新建->新模块->导入.JAR / .AAR包。
  6. 选择Ref.jar作为文件名-> Finish(成功显示)。
  7. 修改后的build.gradle

    // build.gradle (Module: app)  
    
    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 27  
        buildToolsVersion "27.0.3"
        defaultConfig {
            applicationId "com.ramrod.RefTest"
            minSdkVersion 11
            targetSdkVersion 15
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
        repositories {
            flatDir {
                dirs 'libs'
            }
        }
        dependencies {
            compile( name:'Ref', ext:'aar' )
       }
    }  
    
  8. 同步build.gradle(全部)
  9. 在RefTest主要活动的onCreate中添加了对Ref.aar方法(正方形)的引用。

    int sq = Ref.square( 2 );
    
  10. 构建->清理,然后构建->重建。
    产生错误:找不到符号变量Ref

我确定我只是在做些天真或愚蠢的事,但我看不到。
任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:7)

您应该:

1)创建aar库并将其放在libs目录中(“ File-> New-> New Module-> Import .JAR / .AAR包“)

see picture

2)添加到build.gradle(模块:应用)

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

}

之后,您可以使用Ref.square(int);

构建后您的APK将包含:

enter image description here

答案 1 :(得分:2)

使用“导入aar / jar”选项从内置帮助工具中导入AAR时, 工作室使用此aar创建模块。

因此,在此状态下,您会看到与下面提到的状态类似的内容。 如果显示面板是Android,

enter image description here

将面板模式更改为Project并打开testaar,您实际上可以看到模块和相应aar的build.gradle文件。

enter image description here

这就是为什么您的声明

compile( name:'Ref', ext:'aar' )

无法正常工作。

要将此aar添加到您的项目中(使用import aar / jar之后),您可以做的是先将模块添加到settings.gradle(项目设置文件)

include ':app', ':testaar'

然后直接将其添加到您的应用程序级别的build.gradle文件

implementation project(':testaar')

2)另一种方法是

右键单击您的应用程序模块->选择打开模块设置->选择模块->转到依赖项标签

P.S,您还可以从Build-> Edit Libraries and Dependencies打开此窗口

您将遇到如下窗口

enter image description here

点击小号+图标,然后点击“模块”选项,最后添加所需的模块(测试版)

enter image description here

同步您的代码,瞧,它将立即开始工作。