2015-08-18 2 views
5

В моем проекте Android Studio Gradle я использую несколько библиотек, тогда как одна библиотека должна использовать локальный файл AAR в качестве зависимости. Я использовал популярный решение включить файл AAR как зависимость в моей библиотеке проекта:Включить зависимость AAR в Android-библиотеке Project

flatDir { 
    dirs 'libs' 
} 

compile(name: 'aar-library', ext: 'aar') 

Когда я теперь пытаюсь синхронизации я получаю сообщение об ошибке

Не удалось решить: зависимость «AAR-библиотека '

в моем основном проекте, хотя я не использую/не ссылаюсь на файл AAR. Если я просто скопирую файл AAR в папку libs моего основного проекта, он тоже работает. Есть идеи?

+0

является AAR-библиотека имени файла? –

+0

Да, это имя файла без расширения файла – user1033552

ответ

9

Уже найдено решение проблемы. Похоже, что зависимости AAR все перемещаются вместе, поэтому основной проект пытается разрешить зависимость AAR в своем каталоге «libs», где явно не существует. Что вам нужно сделать, это более точно определить, где каждый модуль, который зависит от библиотеки с файлом AAR, может найти ее относительно ее пути, например.

dirs project(':my-library-project').file('libs')

+0

greate! Очень полезно! –

+0

Ты спас меня много времени! – FlyingHorse

+0

никогда бы не подумал об этом –

0

Я имел это работает так:

compile 'com.example.lib:lib_name:[email protected]' 

В этом примере lib_name:1.0.0.aar это имя файла.

0

В случае, если пользователь1033552 не работает. В моем случае это не сработало.

Ниже были шаги для меня.

  1. Проект правой кнопки мыши -> Новый -> Модуль -> Импорт пакета aar -> выберите файл и импортируйте его.
  2. В settings.gradle, сделать зависимым после dependency.For например include ':imported-aar', ':your-library', ':app'
  3. Теперь build.gradle из вашего библиотека добавить compile project(':imported-aar')
Смежные вопросы