Як створити пакет випуску бібліотеки Android (aar) в Android Studio (не налагоджувати)


81

Я створив свій пакет бібліотеки для Android (aar), і результат побудови створюється в папці ".. \ app \ build \ outputs \ aar". Файл у цій папці називається "app-debug.aar", тому я думаю, він був побудований у режимі налагодження, тому я хотів би знати, як створити побудований випуск, тобто "app-release.aar". Як я можу це зробити? Крім того, чи можна створити збірку з іншим спеціальним іменем, наприклад, "myCustomAppName-release.aar" замість "app-release.aar".



2
Ви знайшли рішення цієї проблеми? У мене така сама проблема, і я не можу знайти з нею допомогу.
Белурд

Відповіді:


120

В Android Studio 1.2+ є повне gradleменю, в якому перераховані всі доступні gradleзавдання.

Я знайшов це меню праворуч від IDE з увімкненими параметрами за замовчуванням.

Меню gradle знаходиться за замовчуванням у правій частині IDE ...

Клацніть правою кнопкою миші потрібне завдання та натисніть "Виконати".

Клацніть правою кнопкою миші завдання, яке потрібно натиснути "RUN"


1
Це працює для мене, але я помітив, що збірка зі стандартного меню "побудувати" також почала працювати після того, як я запустив команди класу рядків cmd, запропоновані користувачем1624552 у коментарях для іншої відповіді тут. Було б корисно, якщо хтось, хто не запустив оцінку командного рядка, може підтвердити, що цей підхід до меню сторонного меню працює, оскільки я помітив, що командний рядок завантажив те, що виглядало як нова версія gradle у моєму випадку, перш ніж він запустився, і мені цікаво, чи також є обов’язковим кроком.
Мік

1
BTW, молодець знайшов це !!! Якщо хтось із Google дивиться на це, було б непогано знати, чи є якісь плани пов’язати / раціоналізувати / пояснити верхнє меню побудови, це „нове” бічне меню Gradle, перегляд варіантів побудови тощо?
Мік

Так, безумовно. Я теж запускав gradle з командного рядка, як пропонували інші відповіді, поки не знайшов це меню. Я не впевнений, що запустити його з командного рядка потрібно спочатку перед використанням бічного меню ... Цікавим є також те, що будь-яке завдання, яке ви запускаєте з бічного меню gradle, стає за замовчуванням дією "Виконати". Тобто, іншими словами, значок зеленої стрілки та меню Виконати вказують на останнє завдання gradle. Корисно :)
jiminikiz

лише одне питання, коли ви експортуєте файли aar у режимі випуску, чи включатиме воно в себе останні властивості proguard?
abh22ishek

1
Так, якщо ви запустите assembleзавдання, воно застосовуватиме всі правила progaurd, які ви визначили у своєму проекті.
jiminikiz

10

Я зіткнувся з цією проблемою в AS 2.3.3 і вирішив її, змінивши варіант збірки модуля, щоб випустити та побудувати заново:

введіть тут опис зображення


9

Цю проблему вже можна вирішити за допомогою таких відповідей, як виконати

./gradlew assembleRelease

або виберіть assembleRelease в меню Gradle Android Studio . Однак, для повноти, з Android Studio 1.5.1 (і, можливо, також старшими версіями), версію збірки .aar для побудови можна досягти, вибравши Build -> "Build APK" в Android Studio . Здається, виконується assembleRelease. Якщо ваш проект містить лише проект бібліотеки, він не вимагає інформації про підписання.


8

1. додайте наступний сценарій до вашого тегу android {} у build.gradle, щоб створити збірку випуску:

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), щоб отримати вихідні дані? Як я можу створити власний магазин ключів?
Ральф

У моєму бібліотечному проекті \ build \ outputs \ aar вже генерується: XX-debug.aar, XX-release.aar. І чому ви застосували файл .arr? Якщо ви хочете використовувати бібліотеку, просто додайте наступний скрипт у build.gradle: dependencies {compile project (': YourLibraryProject')}
codezjx

1
Я хочу використовувати цю бібліотеку в своїх програмах для Android в майбутньому. Це бібліотека, і я хочу отримати вихідні дані, але я не розумію, чому, але я отримую лише XX-debug.aar, а не XX-release.aar у папці "\ app \ build \ outputs \ aar" моєї бібліотеки.
Ральф

5
З вікон терміналу, потрапивши в папку проекту, я виконав такі команди: "./gradlew clean" і "./gradlew aR", і тепер "XX-release.aar" генерується в ".. \ app \ build \ виводи папку \ aar ". Як я можу зробити те ж саме з Android Studio? тобто сказати Android Studio також зібрати Реліз.
Ральф

1
Зазвичай все, що вам потрібно зробити, це побудувати проект в андроїд-студії, але у мене така сама проблема у кількох додатках. Отже, робити це в терміналі - єдине рішення.
CodyMace

8

За допомогою Android Studio 3.0 легше створювати файл aar. У опції Gradle виберіть варіант, як показано на малюнку введіть тут опис зображення


У моєму проекті я не бачу можливості збирання релізу.
Gyan Swaroop Awasthi

при імпорті мого випуску .aar lib у проект виникає помилка типу "AAPT: помилка: атрибут ... не знайдено" @leeCoder
Shomu,

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

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


в чому різниця між ./gradlew <moduleName>:assemble<build_variant>і ./gradlew <moduleName>:bundle<build_variant>Aar?
рупеш

3

Налаштуйте свій проект як бібліотеку Android
У build.gradleфайлі: plugin: 'com.android.library'
Ви можете побачити результати у: build/outputs/aar/[your module].
Також перегляньте це посилання


3

Ще одне питання з двох частин, де ніхто не відповідає на другу частину ...

Для майбутніх поколінь ось прості відповіді:

Частина 1 Як створити лише випуск *release.aar?

Запустіть в android studio terminal(або будь-який термінал у папці проекту):

./gradlew assembleRelease

Вам не потрібно підписувати конфігурацію для такого завдання.

Частина 2 Як перейменувати вихідну бібліотеку на AnotherLibraryName-release.aar?

Додайте до свого модуля gradle.build:

android{
    project.archivesBaseName = "AnotherLibraryName"
}

0

для мене просто виправлення помилки макета в бібліотеці, яка не спричинило помилку компіляції (відсутній плагін androidx), виправило її і <lib>-release.aarз’явилося поряд з папкою <lib>-debug.aarin build/outputs/aar/.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.