Android Studio에서 릴리스 Android 라이브러리 패키지 (aar)를 만드는 방법 (디버그 아님)


81

내 안드로이드 라이브러리 패키지 (aar)를 빌드했고 빌드 결과는 ".. \ app \ build \ outputs \ aar"폴더에 생성됩니다. 이 폴더에있는 파일은 "app-debug.aar"이므로 디버그 모드로 빌드 된 것 같아서 빌드 된 릴리스, 즉 "app-release.aar"를 생성하는 방법을 알고 싶습니다. 어떻게 할 수 있습니까? 또한 "app-release.aar"대신 "myCustomAppName-release.aar"와 같이 다른 사용자 지정 이름으로 빌드를 생성 할 수 있습니다.



2
이 문제에 대한 해결책을 찾았습니까? 나는 같은 문제가 있으며 그것에 대한 도움을 찾을 수 없습니다.
Belurd

답변:


120

Android Studio 1.2 이상 gradle에는 사용 가능한 모든 gradle작업 을 나열 하는 전체 메뉴가 있습니다 .

이 메뉴는 기본 옵션이 활성화 된 IDE의 오른쪽에 있습니다.

gradle 메뉴는 기본적으로 IDE의 오른쪽에 있습니다.

원하는 작업을 마우스 오른쪽 버튼으로 클릭하고 "실행"을 클릭합니다.

원하는 작업을 마우스 오른쪽 버튼으로 클릭하고 "실행"을 클릭하십시오.


1
이것은 나를 위해 작동하지만 여기에 다른 답변에 대한 주석에서 user1624552가 제안한 cmd 라인 등급 명령을 실행하면 표준 '빌드'메뉴의 빌드도 작동하기 시작했습니다. 명령 줄 등급을 실행하지 않은 사람이이 사이드 gradle 메뉴 접근 방식이 작동하는지 확인할 수 있다면 유용 할 것입니다. 명령 줄이 실행되기 전에 제 경우에 새 버전의 gradle처럼 보이는 것을 다운로드 한 것을 알았 기 때문에 그게 또한 필수 단계입니다.
Mick

1
BTW, 잘 찾았습니다! Google의 누군가가 이것을보고 있다면 상위 빌드 메뉴,이 '새로운'Gradle 사이드 메뉴 및 빌드 변형보기 등을 연결 / 합리화 / 설명 할 계획이 있는지 아는 것이 좋을 것입니다.
Mick

네, 물론입니다. 나는 메뉴를 찾을 때까지 다른 답변이 제안한대로 명령 줄에서 gradle을 실행했습니다. 사이드 메뉴를 사용하기 전에 먼저 명령 줄에서 실행해야할지 모르겠습니다 ... 흥미로운 점은 사이드 gradle 메뉴에서 실행하는 모든 작업이 기본 작업 "실행"작업이된다는 것입니다. 즉, 녹색 화살표 아이콘과 실행 메뉴는 마지막 실행 gradle 작업을 가리 킵니다. 유용한 :)
jiminikiz

릴리스 모드에서 aar 파일을 내보낼 때 한 가지 질문에 최신 proguard 속성이 포함됩니까?
abh22ishek 2015

1
예, assemble작업 을 실행하면 프로젝트에서 정의한 모든 프로그램 규칙이 적용됩니다.
jiminikiz

10

AS 2.3.3에서이 문제에 직면했고 모듈의 빌드 변형을 변경하여 릴리스하고 다시 빌드하여 해결했습니다.

여기에 이미지 설명 입력


9

이 문제는 이미 execute와 같은 답변으로 처리 할 수 ​​있습니다.

./gradlew assembleRelease

또는 Android Studio의 Gradle 메뉴에서 assembleRelease를 선택하세요 . 그러나 완성도를 위해 Android 스튜디오 1.5.1 (및 아마도 이전 버전)에서 .aar의 릴리스 버전을 빌드하려면 Android 스튜디오에서 Build- > "Build APK"를 선택하면 됩니다. assembleRelease를 실행하는 것 같습니다. 프로젝트에 라이브러리 프로젝트 만 포함 된 경우 서명 정보를 요청하지 않습니다.


8

1. build.gradle의 android {} 태그에 다음 스크립트를 추가하여 릴리스 빌드를 생성합니다.

signingConfigs {
    testConfig{
        storeFile file("X:/XXXX/yourkeystore")
        storePassword "yourKeyPassword"
        keyAlias "yourAlias"
        keyPassword "yourAliasPassword"
    }
}

buildTypes{
    release {
        signingConfig  signingConfigs.testConfig
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

2. 명령 줄에서 "gradle clean build"명령을 실행합니다.


죄송합니다. 저는 Android 개발의 초보자입니다. 릴리스 출력을 얻으려면 Android 라이브러리 패키지 (aar)에 서명해야합니까? 고유 한 키 저장소를 생성하려면 어떻게해야합니까?
Ralph

내 라이브러리 프로젝트에서 \ build \ outputs \ aar는 이미 XX-debug.aar, XX-release.aar를 생성합니다. 왜 .arr 파일이 필요합니까? 라이브러리를 사용하려면 build.gradle에 다음 스크립트를 추가하십시오. dependencies {compile project ( ': YourLibraryProject')}
codezjx

1
향후 Android 앱 내에서이 라이브러리를 사용하고 싶습니다. 이것은 라이브러리이고 릴리스 출력을 얻고 싶지만 이유를 이해하지 못하지만 내 라이브러리의 "\ app \ build \ outputs \ aar"폴더에서 XX-release.aar가 아닌 XX-debug.aar 만 얻고 있습니다.
Ralph

5
터미널 창에서 프로젝트 폴더에서 다음 명령을 실행했습니다. "./gradlew clean"및 "./gradlew aR"이제 "XX-release.aar"가 ".. \ app \ build \에 생성됩니다. outputs \ aar "폴더. Android Studio에서 어떻게 똑같이 할 수 있습니까? 즉, Android Studio에 릴리스를 조립하도록 지시하는 것입니다.
Ralph

1
일반적으로 Android 스튜디오에서 프로젝트를 빌드하기 만하면되지만 몇 가지 앱에서 동일한 문제가 발생합니다. 따라서 터미널에서 수행하는 것이 유일한 해결책입니다.
CodyMace

8

Android Studio 3.0을 사용하면 aar 파일을 더 쉽게 생성 할 수 있습니다. Gradle 옵션에서 그림과 같이 옵션을 확인하십시오. 여기에 이미지 설명 입력


내 프로젝트에서 조립 릴리스 옵션을 볼 수 없습니다.
Gyan Swaroop Awasthi

내가 프로젝트에 lib 디렉토리 .aar 내 출시를 가져올 때이 같은 오류 상승 "AAPT을 : 오류 : 속성을 ... 찾을 수 없음"@leeCoder
쇼무

4

명령 줄을 사용할 수 있습니다.

./gradlew <moduleName>:assemble

./gradlew <moduleName>:assemble<build_variant>
//for example
./gradlew <moduleName>:assembleRelease

//or
./gradlew <moduleName>:bundle<build_variant>Aar
//for example
./gradlew <moduleName>:bundleReleaseAar
//output is located
<project_path>/build/outputs/aar/<module_name>-<build_variant>.aar

또는 AndroidStudio UI를 사용할 수 있습니다.

View -> Tool Windows -> Gradle
<module_name> -> Tasks -> build or others -> assembleRelease


./gradlew <moduleName>:assemble<build_variant>과 의 차이점은 무엇 ./gradlew <moduleName>:bundle<build_variant>Aar입니까?
rupesh

3

안드로이드 라이브러리로 프로젝트를 설정
에서 build.gradle파일 : plugin: 'com.android.library'
: 당신의 출력을 볼 수 있습니다 build/outputs/aar/[your module].
또한이 참조 링크를


3

아무도 두 번째 부분에 대답하지 않는 또 다른 두 부분 질문 ...

미래 세대를위한 간단한 답변은 다음과 같습니다.

파트 1 릴리스 만 만드는 방법은 *release.aar무엇입니까?

Android 스튜디오 terminal(또는 프로젝트 폴더의 모든 터미널)에서 실행합니다. :

./gradlew assembleRelease

이러한 작업에는 서명 구성이 필요하지 않습니다.

파트 2 출력 라이브러리의 이름을 어떻게 바꾸 AnotherLibraryName-release.aar나요?

모듈에 추가하십시오 gradle.build.

android{
    project.archivesBaseName = "AnotherLibraryName"
}

0

나를 위해, 컴파일 오류를 생성하지 않는 라이브러리의 레이아웃 버그를 수정하기 만하면 (androidx 플러그인 누락) 수정 <lib>-release.aar되고 <lib>-debug.aarin build/outputs/aar/폴더 와 함께 나타납니다 .

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