Câu hỏi Tạo tệp aar trong Android Studio


Tôi muốn tạo một tệp aar cho thư viện của mình trong Android Studio, tôi đã sử dụng tùy chọn jar nhưng thư viện của tôi có tài nguyên.

Bất kỳ ý tưởng làm thế nào để tạo ra một tập tin aar từ một thư viện?


124
2018-06-19 15:07


gốc




Các câu trả lời:


Nếu thư viện của bạn được thiết lập làm thư viện Android (nghĩa là thư viện sử dụng thư viện apply plugin: 'com.android.library' trong tệp build.gradle của nó), nó sẽ xuất ra một dấu .aar khi nó được tạo. Nó sẽ xuất hiện trong xây dựng / đầu ra / aar / trong thư mục của mô-đun của bạn.

Bạn có thể chọn loại "Thư viện Android" trong Tệp> Mô-đun mới để tạo Thư viện Android mới.


166
2018-06-19 21:24



Tôi biết đây là một chủ đề cũ, nhưng có cách nào để "phiên bản" này? Mặc dù việc tạo .aar khá đơn giản, có cách nào để áp dụng số phiên bản cho nó không? Chúng tôi muốn tạo ra một thư viện phân phối tại công ty chúng tôi để đưa vào Artifactory và sẽ cần versioning. - TheIcemanCometh
Phiên bản thực sự là bên ngoài bản thân AAR. Bạn thường sẽ thiết lập một tệp maven pom có ​​thông tin phiên bản. - Scott Barta
Tôi có tệp aar trong thư mục libs của thư viện để nó không được bao gồm trong bản dựng / đầu ra / aar / trực tiếp - Ganesh Jogam
tập tin aar xuất hiện trong app / build / output / aar / và không nằm trong thư mục / build / ở cấp dự án! trong trường hợp bạn không tìm thấy ... - peresisUser
Lưu ý rằng để tạo aar, Tôi phải làm một Build > Rebuild Project trong Android Studio. Chỉ cần chạy, gỡ lỗi hoặc Xây dựng APK không tạo ra aar cho tôi. - Adam Johns


Truy xuất tệp .aar đã xuất từ ​​các bản dựng cục bộ

Nếu bạn có một mô-đun được định nghĩa là dự án thư viện android, bạn sẽ nhận được các tệp .aar cho tất cả các tính năng xây dựng (gỡ lỗi và phát hành theo mặc định) trong build/outputs/aar/ thư mục của dự án đó.

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

Nếu những tệp này không tồn tại, hãy bắt đầu xây dựng

gradlew assemble

Chi tiết dự án thư viện

Dự án thư viện có build.gradle tệp chứa apply plugin: com.android.library. Để tham khảo thư viện này được đóng gói dưới dạng .aar bạn sẽ phải xác định một số thuộc tính như gói và phiên bản.

Thí dụ build.gradle tệp cho thư viện (ví dụ này bao gồm obfuscation trong bản phát hành):

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

Tham chiếu tệp .aar trong dự án của bạn

Trong dự án ứng dụng của bạn, bạn có thể thả .aar tập tin trong libs và cập nhật build.gradle để tham khảo thư viện này bằng ví dụ dưới đây:

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

Có thể tìm thấy các tùy chọn thay thế để tham chiếu các tệp phụ thuộc cục bộ ở chế độ gradle tại: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project 

Chia sẻ các phụ thuộc bằng cách sử dụng maven

Nếu bạn cần chia sẻ .aar các tệp trong tổ chức của bạn sẽ kiểm tra maven. Một tốt đẹp viết về chủ đề này có thể được tìm thấy tại: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-library-aar-across

Giới thiệu về định dạng tệp .aar

Tệp aar chỉ là một .zip với một phần mở rộng thay thế và nội dung cụ thể. Để biết chi tiết, hãy kiểm tra liên kết này về định dạng aar.


125
2017-12-19 11:23



câu trả lời là gì cám ơn - Mark Lapasa
Câu trả lời tuyệt vời và chi tiết. +1 cho gradlew assemble - giải quyết được vấn đề tôi đang gặp phải. - Farbod Salamat-Zadeh
@hcpl Cách chuyển đổi dự án android của tôi thành tệp .aar - Ana
Tôi không thể chạy lệnh gradlew trên mac - Naveed Ahmad
@NaveedAhmad bạn đã thử ./gradlew - hcpl


giống như người dùng hcpl nói nhưng nếu bạn không muốn lo lắng về phiên bản của thư viện, bạn có thể làm điều này:

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

như là loại gây phiền nhiễu khi phải cập nhật phiên bản mọi lúc. Ngoài ra nó làm cho không phải lo lắng về không gian tên dễ dàng hơn theo cách này.


7
2017-11-12 19:39





btw @aar không có sự phụ thuộc quá độ. bạn cần một tham số để bật nó: Phụ thuộc transitive không được giải quyết cho thư viện aar bằng cách sử dụng gradle


0
2017-10-16 18:58