Cách tạo gói thư viện android bản phát hành (aar) trong Android Studio (không gỡ lỗi)


81

Tôi đã xây dựng gói thư viện Android của mình (aar) và kết quả của quá trình xây dựng được tạo trong thư mục ".. \ app \ build \ outputs \ aar". Tệp trong thư mục này được gọi là "app-debug.aar" vì vậy tôi đoán nó đã được tạo ở chế độ gỡ lỗi, vì vậy tôi muốn biết cách tạo bản phát hành được xây dựng, tức là "app-release.aar". Tôi có thể làm cái này như thế nào? Ngoài ra, có thể tạo bản dựng bằng một tên tùy chỉnh khác, chẳng hạn như "myCustomAppName-release.aar" thay vì "app-release.aar".



2
Bạn đã tìm ra giải pháp cho vấn đề này chưa? Tôi có cùng một vấn đề và không thể tìm thấy bất kỳ trợ giúp nào với nó.
Belurd

Câu trả lời:


120

Trong Android Studio 1.2+, có một gradlemenu hoàn chỉnh liệt kê tất cả các gradletác vụ có sẵn .

Tôi tìm thấy menu này ở phía bên phải của IDE với các tùy chọn mặc định được bật.

Menu gradle ở bên phải của IDE theo mặc định ...

Nhấp chuột phải vào nhiệm vụ bạn muốn và nhấp vào "Chạy".

Nhấp chuột phải vào tác vụ bạn muốn nhấp vào "CHẠY"


1
Điều này phù hợp với tôi, nhưng tôi nhận thấy rằng bản dựng từ menu 'bản dựng' tiêu chuẩn cũng bắt đầu hoạt động sau khi tôi chạy các lệnh cấp dòng cmd do người dùng1624552 đề xuất trong các nhận xét cho một câu trả lời khác ở đây. Sẽ rất hữu ích nếu ai đó chưa chạy lớp dòng lệnh có thể xác nhận phương pháp tiếp cận menu gradle bên này hoạt động cũng như tôi nhận thấy dòng lệnh đã tải xuống trông giống như một phiên bản gradle mới trong trường hợp của tôi trước khi nó chạy và tôi tự hỏi liệu điều đó có là một bước bắt buộc.
Mick:

1
BTW, làm tốt việc tìm kiếm này !!! Nếu ai đó từ Google đang xem nó, sẽ rất vui nếu biết liệu có bất kỳ kế hoạch nào để liên kết / hợp lý hóa / giải thích menu Build trên cùng, menu bên Gradle 'mới' này và chế độ xem Build Variants, v.v. không?
Mick:

Dứt khoát. Tôi cũng chạy gradle từ dòng lệnh như những câu trả lời khác đã đề xuất cho đến khi tôi tìm thấy menu đó. Tôi không chắc rằng việc chạy nó từ dòng lệnh là bắt buộc trước khi sử dụng menu bên ... Điều thú vị là bất kỳ tác vụ nào bạn chạy từ menu bên sẽ trở thành hành động mặc định "Chạy". Vì vậy, nói cách khác, biểu tượng mũi tên màu xanh lục và menu Run trỏ đến tác vụ gradle chạy cuối cùng. Hữu ích :)
jiminikiz

chỉ một câu hỏi, khi bạn xuất tệp aar ở chế độ phát hành, nó có bao gồm các thuộc tính proguard mới nhất với nó không?
abh22ishek

1
Có, nếu bạn chạy assembletác vụ, nó sẽ áp dụng bất kỳ quy tắc progaurd nào bạn đã xác định trong dự án của mình.
jiminikiz

10

Tôi đã đối mặt với vấn đề này trong AS 2.3.3 và đã giải quyết nó bằng cách thay đổi biến thể xây dựng của mô-đun để phát hành và xây dựng lại:

nhập mô tả hình ảnh ở đây


9

Vấn đề này đã có thể được xử lý với các câu trả lời như thi hành

./gradlew assembleRelease

hoặc chọn assemblyRelease từ menu Gradle của Android Studio . Tuy nhiên, để hoàn thiện, với Android Studio 1.5.1 (và có thể cả các phiên bản cũ hơn), phiên bản phát hành .aar có thể được thực hiện bằng cách chọn Build -> "Build APK" trong Android Studio . Có vẻ như nó đang thực thi assemblyRelease. Nếu dự án của bạn chỉ chứa dự án thư viện, nó không yêu cầu bất kỳ thông tin ký kết nào.


8

1.thêm tập lệnh sau vào thẻ android {} của bạn trong build.gradle để tạo một bản phát hành:

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. chạy lệnh "gradle clean build" trong dòng lệnh của bạn.


Xin lỗi, tôi là người mới trong lĩnh vực phát triển Android. Có nhất thiết phải ký một gói thư viện android (aar) để nhận đầu ra phát hành của nó không? Làm cách nào để tạo kho khóa của riêng tôi?
Ralph

Trong dự án thư viện của tôi, \ build \ outputs \ aar đã được tạo: XX-debug.aar, XX-release.aar. Và Tại sao bạn cần một tệp .arr? Nếu bạn muốn sử dụng một thư viện, chỉ cần thêm tập lệnh sau vào bạn build.gradle: dependencies {compile project (': YourLibraryProject')}
codezjx

1
Tôi muốn sử dụng thư viện này trong các ứng dụng Android của mình trong tương lai. Đây là một thư viện và tôi muốn lấy kết quả phát hành của nó nhưng tôi không hiểu tại sao nhưng tôi chỉ nhận được XX-debug.aar chứ không phải XX-release.aar trong thư mục "\ app \ build \ outputs \ aar" của thư viện.
Ralph

5
Từ cửa sổ đầu cuối, khi ở trong thư mục dự án, tôi đã thực hiện các lệnh sau: "./gradlew clean" và "./gradlew aR" và bây giờ "XX-release.aar" được tạo thành ".. \ app \ build \ thư mục outputs \ aar ". Làm cách nào tôi có thể làm điều tương tự từ Android Studio? nghĩa là, yêu cầu Android Studio lắp ráp cả Bản phát hành.
Ralph

1
Thông thường tất cả những gì bạn cần làm là xây dựng dự án trong studio android nhưng tôi gặp vấn đề tương tự trong một vài ứng dụng. Vì vậy, làm điều đó trong thiết bị đầu cuối là giải pháp duy nhất.
CodyMace

8

Với Android Studio 3.0, việc tạo tệp aar dễ dàng hơn. Từ tùy chọn Gradle, hãy chek cho tùy chọn như trong hình nhập mô tả hình ảnh ở đây


Trong dự án của tôi, tôi không thể thấy tùy chọn phát hành lắp ráp.
Gyan Swaroop Awasthi

khi tôi nhập bản phát hành .aar lib của mình trong một dự án, nó phát sinh lỗi như "AAPT: error: thuộc tính ... không tìm thấy" @leeCoder
Shomu

4

Bạn có thể sử dụng dòng lệnh

./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

Ngoài ra, bạn có thể sử dụng giao diện người dùng AndroidStudio

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


sự khác biệt giữa ./gradlew <moduleName>:assemble<build_variant>và là ./gradlew <moduleName>:bundle<build_variant>Aargì?
rupesh

3

Thiết lập dự án của bạn dưới dạng thư viện Android
Trong build.gradletệp: plugin: 'com.android.library'
Bạn có thể xem đầu ra trong: build/outputs/aar/[your module].
Cũng xem liên kết này


3

Tuy nhiên, một câu hỏi 2 phần khác mà không ai trả lời phần thứ hai ...

Đối với các thế hệ tương lai, đây là những câu trả lời đơn giản:

Phần 1 Làm thế nào để tạo chỉ phát hành *release.aar?

Chạy trong studio android terminal(hoặc bất kỳ thiết bị đầu cuối nào trong thư mục dự án của bạn):

./gradlew assembleRelease

Bạn không cần cấu hình ký cho tác vụ như vậy.

Phần 2 Làm thế nào để đổi tên thư viện đầu ra thành AnotherLibraryName-release.aar?

Thêm vào mô-đun của bạn gradle.build:

android{
    project.archivesBaseName = "AnotherLibraryName"
}

0

đối với tôi, chỉ cần sửa lỗi bố cục trong thư viện không tạo ra lỗi biên dịch (thiếu plugin androidx) đã sửa nó và <lib>-release.aarxuất hiện cùng với thư mục <lib>-debug.aartrong build/outputs/aar/.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.