programing

Android Studio에서 ar 파일 만들기

testmans 2023. 10. 7. 09:31
반응형

Android Studio에서 ar 파일 만들기

안드로이드 스튜디오에서 라이브러리에 대한 aar 파일을 만들고 싶습니다. jar 옵션을 사용하고 싶지만 라이브러리에 리소스가 있습니다.

도서관에서 aar 파일을 만드는 방법이 있습니까?

경우 가 Android 을 , 을 들어,apply plugin: 'com.android.library'build.gradle file)의 statement)를 빌드하면 .aar가 출력됩니다.모듈의 디렉토리에 있는 build/outputs/aar/ 디렉토리에 표시됩니다.

파일 > 새 모듈에서 "Android Library" 유형을 선택하여 새 Android Library를 작성할 수 있습니다.

만약 당신이 아직도 당신의 것을 보지 못한다면,aar일 ,Build > Rebuild Project.

로컬 빌드에서 내보낸 .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. 이 라이브러리를 참조하기 위해 다음과 같이 포장되어 있습니다..aarpackage나 version 같은 속성을 정의해야 합니다.

build.gradle파일 for library (이 예는 릴리스에서 난독화를 포함함):

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 파일 참조

이 를 할 수 ..aarlibs폴더를 저장하고 업데이트합니다.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

메이븐을 이용한 의존관계 공유

가 있는 ..aar당신의 조직내의 파일들은 체크아웃이 가능합니다.이 주제에 대한 멋진 글은 https://web.archive.org/web/20141002122437/http ://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-library-aar-across 에서 확인할 수 있습니다.

.aar 파일 형식

입니다..zip다른 확장자와 특정 내용을 포함합니다.자세한 내용은 aar 형식에 관한링크를 확인하세요.

사용자 hcpl이 말한 것처럼 라이브러리 버전에 대해 걱정하지 않으려면 다음을 수행할 수 있습니다.

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

매번 버전을 업데이트해야 하는 것이 귀찮기 때문입니다.또한 이렇게 하면 이름 공간에 대한 걱정을 덜 수 있습니다.

AAR을 작성하려면

다음 단계를 작성하는 동안.

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

AAR 생성 방법

Android 스튜디오의 오른쪽 상단 창에서 아래 단계에 따라 그라들로 이동합니다.

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

AAR은 빌드/출력/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")
        }
    }
}

이제 AAR이 있는 프로젝트 디렉토리에 "release"라는 이름의 폴더를 생성합니다.

업데이트된 답변

최신 릴리스에서는 특정 경로가 지원되지 않습니다.라이브러리의 build.gradle 및 rebuild 프로젝트에 아래 코드를 추가해주시기 바랍니다."aar" Rebuild 후 프로젝트 구조를 Android에서 Project로 변경합니다-> 라이브러리로 탐색->build->outputs->aar

android {
defaultConfig {
    minSdkVersion ..
    targetSdkVersion ..
    versionCode ...
    versionName "1"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    consumerProguardFiles 'consumer-rules.pro'
}

libraryVariants.all { variant ->
    variant.outputs.all { output ->
    outputFileName = "${archivesBaseName}_${variant.name}_${defaultConfig.versionName}.aar"
}

}}

"aar"를 프로젝트로 가져오려면 아래 링크를 확인하십시오.

Android용 Gradle을 사용하여 외부 aar 패키지를 수동으로 포함하는 방법

동일한 스레드에서 hcpl의 답변에 언급된 첫 번째 및 두 번째 단계를 수행한 후, 우리는 아래와 같이 our-android-app-project-based-on-gradle/app/build.gradle 파일에 '*.aar', dir: 'libs'를 추가했습니다.

...

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

...

저희 그라들 버전은 com.android 입니다.tools.build:gradle:3.2.1

그건 그렇고 @aar는 경과적 의존성이 없습니다.설정할 매개 변수가 필요합니다. gradle을 사용하는 aar 라이브러리에 대해 transitive dependency가 해결되지 않았습니다.

빌드 ---> 번들/apk 빌드

.aar 파일은 build/outputs/aar 폴더에서 생성됩니다.

드디어 여기서 해결책을 찾음 - https://stackoverflow.com/a/49663101/9640177

implementation files('libs/aar-file.aar')

편집 라이브러리 모듈에 대해 minifyEnabled true를 설정했습니다.

[JAR vs AAR]

.jar에 의해 생성됩니다.apply plugin: 'java-library'

.aar에 의해 생성됩니다.apply plugin: 'com.android.library'

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

게시를 위해 올바르게 설정한 경우 이 명령을 실행하여 생성할 수 있습니다.aar서류철

 ./gradlew publishReleasePublicationToMavenLocal 

이것은 다음을 생성할 것입니다.aar안에 줄을 대다<module-dir>/build/output/aar디렉토리 입니다.

이제 다른 지역 프로젝트에서도 이 도서관을 사용할 수 있습니다.프로젝트에 추가gradle이것을 사용하고 싶은.aar모듈

implementation fileTree(dir: '<location-to-library>/build/outputs/aar/', include: ['*.aar', '*.jar'], exclude: [])

언급URL : https://stackoverflow.com/questions/24309950/create-aar-file-in-android-studio

반응형