Android Studio에서 AAR 파일 만들기


173

Android Studio에서 내 라이브러리에 대한 aar 파일을 만들고 싶습니다 .jar 옵션을 사용했지만 라이브러리에 리소스가 있습니다.

라이브러리에서 aar 파일을 만드는 방법에 대한 아이디어가 있습니까?

답변:


225

라이브러리가 Android 라이브러리로 설정된 경우 (예 : apply plugin: 'com.android.library'build.gradle 파일 의 명령문을 사용하는 경우) 빌드시 .aar가 출력됩니다. 모듈 디렉토리 의 build / outputs / aar / 디렉토리에 표시됩니다.

파일> 새 모듈에서 "Android 라이브러리"유형을 선택하여 새 Android 라이브러리를 만들 수 있습니다.


3
버전 관리는 실제로 AAR 자체 외부에 있습니다. 일반적으로 버전 정보가있는 Maven pom 파일을 설정합니다.
Scott Barta

1
라이브러리의 libs 폴더에 aar 파일이 있으므로 직접 build / outputs / aar /에 포함되지 않습니다.
Ganesh Jogam

4
aar 파일이 프로젝트 레벨의 / build / 폴더가 아닌 app / build / outputs / aar /에 나타났습니다! 당신이 그것을 찾을 수없는 경우에 ...
peresisUser

29
내을 생성 aar하려면 Build > Rebuild ProjectAndroid Studio에서 해야했습니다 . 단순히 실행, 디버깅 또는 APK 빌드 aar는 나를 위해 생성하지 않았습니다 .
Adam Johns

8
@AdamJohns ./gradlew moduleName:assembleRelease터미널 탭에 더 빠른 방법
Sameer J

159

로컬 빌드에서 내 보낸 .aar 파일 검색

Android 라이브러리 프로젝트로 정의 된 모듈이있는 경우 모든 빌드 플레이버 (기본적으로 디버그 및 릴리스)에 대한 .aar 파일이 제공됩니다. build/outputs/aar/ 해당 프로젝트 디렉토리에 됩니다.

your-library-project
    |- build
        |- outputs
            |- aar
                |- appframework-debug.aar
                 - appframework-release.aar

이러한 파일이 존재하지 않으면

gradlew assemble

macOS 사용자 용

./gradlew assemble

도서관 프로젝트 세부 사항

라이브러리 프로젝트에는 다음을 build.gradle포함 하는 파일이 있습니다.apply plugin: com.android.library 있습니다. .aar파일 로 패키지 된이 라이브러리를 참조 하려면 패키지 및 버전과 같은 일부 속성을 정의해야합니다.

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'
        }
    }
}

프로젝트의 참조 .aar 파일

앱 프로젝트에서이 .aar파일을 libs폴더에 build.gradle놓고 아래 예제를 사용하여이 라이브러리를 참조 하도록 파일을 업데이트 할 수 있습니다 .

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs' //this way we can find the .aar file in libs folder
    }
}

android {
    compileSdkVersion 21
    buildToolsVersion "21.0.0"

    defaultConfig {

        minSdkVersion 14
        targetSdkVersion 20
        versionCode 4
        versionName "0.4.0"

        applicationId "yourdomain.yourpackage"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
        }
    }
}

dependencies {
    compile 'be.hcpl.android.appframework:appframework:0.1.0@aar'
}

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 파일은 .zip대체 확장자 및 특정 내용을 가진 파일 일뿐 입니다. 자세한 내용 은 aar 형식에 대한이 링크를 확인하십시오 .


11
훌륭하고 자세한 답변. +1- gradlew assemble내가 가진 문제를 해결했습니다.
Farbod Salamat-Zadeh 2016 년

@hcpl 내 안드로이드 프로젝트를 .aar 파일로 변환하는 방법
Ana

1
@NaveedAhmad 시도 ./gradlew
hcpl

@NaveedAhmad 다음 잘못된 위치에서 실행 중이거나 gradle 구성이 다릅니다. 그런 다음이 간단한 답변이 도움이되지 않습니다하지만 당신은 문제가 찾는 데와 gradlew을 실행하고 정말 경우 "gradlew 찾아"시도 할 수
HCPL

후손 : 프로젝트 최상위 디렉토리gradlew 의 스크립트입니다 .
CodeClown42

11

사용자 hcpl이 말했듯이 라이브러리 버전에 대해 걱정하지 않으려면 다음을 수행하십시오.

dependencies {
    compile(name:'mylibrary', ext:'aar')
}

매번 버전을 업데이트 해야하는 성가신 것으로. 또한 네임 스페이스에 대해 걱정하지 않아도됩니다.


5

에서 언급 된 제 1 및 제 2 단계를 수행 한 후 동일한 스레드에서 HCPL의 답변을 , 우리는 추가 'libs와': '* .aar'], 디렉토리, 에서 우리의-안드로이드 앱 프로젝트 기반 온 Gradle을 / 응용 프로그램 / 아래와 같이 build.gradle 파일 :

...

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

...

우리의 gradle 버전은 com.android.tools.build:gradle:3.2.1입니다.


3

AAR을 만들려면

아래 단계를 따르십시오.

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

AAR을 생성하려면

안드로이드 스튜디오의 오른쪽 상단에있는 gradle로 이동하여 아래 단계를 따르십시오.

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

AAR은 빌드 / 출력 / ar /

그러나 원하는 이름으로 프로젝트 디렉토리의 특정 폴더에 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")
        }
    }
}

이제 AAR을 가질 프로젝트 디렉토리에 "release"라는 이름의 폴더를 만듭니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.