Создание библиотеки и AAR в Android Studio 2.2

Я посмотрел на общую информацию в Android разработчиков здесь и предыдущие вопросы в стеке переполнения here1 , here2 , here3 , и here4 .

Я хотел бы создать новую «служебную библиотеку», которую я могу использовать из других проектов, но есть что-то, чего я не понимаю. Вот что я делаю:

Сначала я запускаю новый проект в Android Studio 2.2 (OS X 10.11):

Application name: Test
Package name: com.example.tomihasa.test
Minimum SDK: API 15: Android 4.0.3
Activity: Empty Activity
( ) Backwards Compatibility (AppCompat)

Во-вторых, я начинаю новую библиотеку: Файл, Новый, новый модуль, библиотека Android

Application/Library name: MyLibrary
Package name: com.example.tomihasa.mylibrary
Minimum SDK: API 15: Android 4.0.3

Теперь у меня есть каталоги:

/Users/tomihasa/AndroidStudioProjects/Test
/Users/tomihasa/AndroidStudioProjects/Test/mylibrary

Почему mylibrary внутри теста? Должен ли он быть где-то еще, если я хочу использовать его в другом месте? Как я могу переместить его?

В-третьих, в настройках.gradle у меня есть:

include ':app', ':mylibrary'

В-четвертых, я строю библиотеку:

Build, Make Module 'mylibrary'.

Я не могу найти ни одного .банка или. Пакет AAR как упомянуто здесь .

Чего мне не хватает?

1 ответ

  1. Вы создаете moduleто, что находится внутри вашего Testпроекта. Все ваши модули будут включены сюда. Сам модуль должен иметь свои собственные скрипты сборки и каталоги и может использоваться независимо от остальной части проекта, если он не имеет каких-либо зависимостей от других модулей.

    Вы можете использовать этот модуль в качестве библиотеки в других проектах, если хотите. Android Studio будет создавать aarфайлы (отладка и/или релиз) каждый раз, когда вы строите его и положить его в Test/myLibrary/build/outputs/aar/папку. Они должны называться что-то вроде {module-name}-debug.aarи {module-name}-release.aarсоответственно. Вы также можете загрузить aarего в локальное хранилище maven или использовать aarнепосредственно в других проектах. Если он не появляется, то вам, возможно, потребуется сделать чистый проект в Android Studio, перейдя Build->Clean Project.

    Если вы хотите создать отдельную библиотеку, вам нужно создать отдельный проект. Затем вы должны импортировать встроенный aarв другие ваши проекты, используя один из методов выше.

    РЕДАКТИРОВАТЬ:

    Для установки в локальный репозиторий maven сначала необходимо включить mavenLocal()репозиторий в сценарий сборки.

    Затем в build.gradleфайле вашей библиотеки необходимо применить mavenплагин:

    apply plugin: 'com.android.library'
    apply plugin: 'maven'
    
    android {
    
       ...
    
       task installArchives(type: Upload) {
          description 'This task will upload the build to mavenLocal()'
          repositories.mavenInstaller {
              pom.version = '0.0.1'
              pom.artifaceId = 'myLibrary'
              pom.groupId = 'com.example.tomihasa'
          }
       }
    }
    

    В консоли gradle введите ./gradlew build installArchivesкоманду для сборки и загрузки.

    Затем ваши проекты могут установить его, включив mavenLocal()в свои сценарии сборки и выполнив:

    dependencies {
        compile 'com.example.tomihasa:myLibrary:0.0.1'
    }