답변:
라이브러리가 Android 라이브러리로 설정된 경우 (예 : apply plugin: 'com.android.library'
build.gradle 파일 의 명령문을 사용하는 경우) 빌드시 .aar가 출력됩니다. 모듈 디렉토리 의 build / outputs / aar / 디렉토리에 표시됩니다.
파일> 새 모듈에서 "Android 라이브러리"유형을 선택하여 새 Android 라이브러리를 만들 수 있습니다.
aar
하려면 Build > Rebuild Project
Android Studio에서 해야했습니다 . 단순히 실행, 디버깅 또는 APK 빌드 aar
는 나를 위해 생성하지 않았습니다 .
./gradlew moduleName:assembleRelease
터미널 탭에 더 빠른 방법
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
파일을 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 에서 찾을 수 있습니다.
.aar
조직 내에서 이러한 파일 을 공유해야하는 경우 maven을 확인하십시오. 이 주제에 대한 좋은 글은 https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- 에서 찾을 수 있습니다. 도서관 주변
aar 파일은 .zip
대체 확장자 및 특정 내용을 가진 파일 일뿐 입니다. 자세한 내용 은 aar 형식에 대한이 링크를 확인하십시오 .
gradlew assemble
내가 가진 문제를 해결했습니다.
gradlew
의 스크립트입니다 .
에서 언급 된 제 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입니다.
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"라는 이름의 폴더를 만듭니다.
btw @aar는 전이 의존성이 없습니다. 당신은 그것을 켜려면 매개 변수가 필요합니다 : gradle을 사용하여 aar 라이브러리에 대해 전 이적 종속성이 해결되지 않았습니다.