首页 > 解决方案 > 如何在 AndroidStudio 项目中添加和使用 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 作为文件名->完成(显示成功)。
  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 主活动中添加了对 Ref.aar 方法(方形)的引用到 onCreate。

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

我确定我在做一些幼稚或愚蠢的事情,但我看不到。
任何帮助表示赞赏。

标签: javaandroidandroid-gradle-pluginbuild.gradleaar

解决方案


你应该:

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

看图片

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

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

}

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

您的 apk 将在构建后包含:

在此处输入图像描述


推荐阅读