Вложенные библиотеки aar поведения файла - PullRequest
0 голосов
/ 23 января 2019

Мы сталкиваемся с проблемой при импорте файла aar библиотеки (назовем его library_2) в другую библиотеку (назовем его library_1).Кроме того, нам нужно импортировать в проект приложения только файл library_1.aar и сделать методы library_2 доступными на уровне проекта.Какова будет структура папок и соответствующие файлы .gradle?

Описание проблемы на изображении ниже: enter image description here

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Я решил вышеуказанную проблему, с которой вы столкнулись.Пожалуйста, посмотрите код ниже и посмотрите, работает ли он для вас.

В вашем файле app.gradle добавьте зависимость ниже:

implementation ('package.name.of.aar:modulethree-debug@aar') {
   transitive=true
}

Примечание: modulethree-debug@aar - это файл, который выхочу получить доступ в другом модуле.

0 голосов
/ 24 января 2019

Вам нужно использовать api вместо implementation для library_1 .Сначала добавьте следующий код в ваш проект library_1 build.gradle:

allprojects {
   repositories {
      jcenter()
      flatDir {
        dirs 'libs'
      }
   }
}

, затем в свой модуль library_1 build.gradle добавьте следующий код в свой блок зависимостей (при условии, что вы добавили library_2 aar в библиотеки library_1)папка):

dependencies {
  api(name:'library_2', ext:'aar')
}

Теперь вы можете получить доступ к library_2 при использовании библиотеки library_1 aar со следующим блоком зависимостей в модуле приложения:

dependencies {
  api(name:'library_1', ext:'aar')
}

Подробнее о flat aar читайте в разделе Как вручную включить внешний пакет aar с помощью новой системы сборки Gradle Android .

Подробнее о различиях между компиляцией, реализацией и API читайте Реализация Gradle и конфигурация API

...