java - 如何在 Android Studio 项目中添加和使用 AAR

标签 java android android-gradle-plugin 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 作为文件名->完成(显示成功)。
  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 主 Activity 的 onCreate 中添加了对 Ref.aar 方法(正方形)的引用。

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

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

最佳答案

你应该:

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

see picture

2) 添加到build.gradle (Module: app)

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

}

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

构建后您的 apk 将包含:

enter image description here

关于java - 如何在 Android Studio 项目中添加和使用 AAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51141190/

相关文章:

java - 如何在eclipse中执行页面对象程序?

android - 您想在您的 Android 应用程序中集成基于 POJO 或 Cursor 的库吗?

android - 索引查询中存在非法字符

android - 在 RelativeLayout 中分配额外的空间

安卓工作室 : Could not find support-annotations. jar

java - 如何在Java程序中使用外部jar依赖?

java - 如何在android studio中不使用 Intent 的情况下从相机拍照

java - 使用 UCanAccess 从大文本文件插入数据非常慢

android - AAR 库传递依赖项冲突?

android - Gradle Javadoc 失败并显示 "error: package ... does not exist"