Мне известен этот вопрос: добавление локальных файлов .aar в мою сборку Gradle, но решение не работает для меня.
Я попытался добавить это утверждение на верхний уровень моего build.gradle
файла:
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
Я также поместил slidingmenu.aar
файл /libs
и ссылался на него в dependencies
разделе: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
но он не работал вообще.
Я тоже пытался, compile files('libs/slidingmenu.aar')
но безуспешно .
Чего мне не хватает? Любые идеи?
PS Android Studio 0.8.2
android
android-studio
android-gradle-plugin
build.gradle
aar
Алексей Дмитриев
источник
источник
Ответы:
Основываясь на ответе Иосии, вот как я заставил его работать.
Следуя его инструкциям (в процессе редактирования) ( Файл -> Новый-> Новый модуль -> Импорт .JAR / .AAR ) и импортируйте свой .AAR.
Затем в вашем проекте build.gradle (не на верхнем уровне, а в разделе «app») добавьте следующее (в разделе зависимостей):
Примечание. Name-Of-Your-Project должен совпадать с именем папки, которая была добавлена после импорта файла AAR (на том же уровне, что и
app/.idea
в папке самого верхнего уровня). Или, говоря по-другому ...У меня это работало под управлением Android Studio 0.8.0. Не забудьте синхронизировать Gradle (используя кнопку на панели инструментов или в меню Файл-> Синхронизировать ) после того, как вы это сделаете.
(Спасибо Иосии за то, что она направила меня в правильном направлении)
(Примечание: до этого я пытался добавить его в папку libs, пытаясь манипулировать верхним уровнем
build.gradle
и уровнем приложенияbuild.gradle
, но ничего из этого не работало для моих файлов aars - jar's будет работать нормально, но не для файлов aar)источник
Error:(25, 0) Required keys [path] are missing from map {name=mylibrary-debug}.
если я используюcompile project(name:'mylibrary-debug')
.. Что мне не хватает?compile project(':Name-Of-Your-Project')
я заменилName-Of-Your-Project
имя моего файла .aar (без.aar
расширения). И это сработало.Обновление : как упоминалось @ amram99, проблема была исправлена с момента выпуска Android Studio v1.3.
Проверено и проверено с приведенными ниже спецификациями
Что работает сейчас
Теперь вы можете импортировать локальный файл aar с помощью параметра « Файл»> «Новый»> «Новый модуль»> «Импортировать пакет .JAR / .AAR» в Android Studio v1.3.
Однако приведенный ниже ответ остается верным и эффективным независимо от изменений в Android Studio, так как он основан на скриптах gradle.
Старый ответ: в недавнем обновлении люди на android сломали включение локальных файлов aar с помощью опции меню добавления нового модуля Android Studio. Проверьте проблему, указанную здесь. Независимо от всего, что входит и выходит из списка возможностей IDE, приведенный ниже метод работает, когда дело доходит до работы с локальными файлами aar (протестировано сегодня):
Поместите файл aar в каталог libs (создайте его при необходимости), затем добавьте следующий код в ваш build.gradle:
источник
repositories
Часть идет в различныхbuild.gradle
для того , чтобы работать - глобальный один.dependencies
Часть идет в модулеbuild.gradle
. Вот почему я получил ошибку.Редактировать: правильный способ (в настоящее время) использовать локальный файл AAR в качестве зависимости сборки - использовать мастер импорта модулей (файл | Новый модуль | Импорт .JAR или .AAR пакет), который автоматически добавит .aar в качестве модуля библиотеки в вашем проекте.
Старый ответ
Попробуй это:
источник
flatDir { dirs 'libs' }
блок, как упомянуто в OP, используя AS 8.13 / Gradle 2.1Я получил это работает на Android Studio 2.1. У меня есть модуль под названием «Native_Ads», который используется несколькими проектами.
Сначала я создал каталог в своем модуле Native_ads с именем «aars», а затем поместил туда файл aar.
Структура каталогов:
Затем другие изменения:
Файл верхнего уровня Gradle:
Файл build.gradle модуля приложения: - без изменений
Файл settings.gradle (для включения модуля):
Gradle-файл для модуля Native_Ads:
Вот и все. Очистить и построить.
источник
Самый простой способ - добавить его в качестве модуля.
Это создаст новый модуль, содержащий файл aar, так что вам просто нужно включить этот модуль в качестве зависимости впоследствии
источник
next
кнопка отображается серым цветом вCreate New Module
диалоговом окне после выбора «Импорт»JAR/AAR Package
?.aar
файл в каталоге проекта, я просто поместил его.aar
на рабочий стол и повторил попытку, и это работает, спасибо за ваше решение!so you just need to include that module as a dependency afterwards
- как ты это делаешь?include
вsettings.gradle
должен был быть достаточно. Я получил это работает. Спасибо!Это моя структура, и как я решаю это:
На build.gradle
из проекта / приложения / myModulesFolder / myLibXYZ
Я поставил это:
Готово и работает нормально, мой подмодуль XYZ зависит от некоторой библиотеки из основного модуля.
источник
Вы можете сделать это таким образом. Это должно идти в формате Maven:
И тогда ваш AAR должен перейти в структуру папок для идентификатора группы "com.example":
Тогда ссылка как зависимость:
compile 'com.example:myaar:version@aar'
Где
version
версия вашего aar-файла (то есть 3.0 и т. Д.)источник
Для тех, кто имеет эту проблему с Android Studio 1.4, я запустил ее, создав модуль в проекте, который содержит 2 вещи.
build.gradle со следующим содержимым:
configurations.create("default")
artifacts.add("default", file('facebook-android-sdk-4.7.0.aar'))
файл aar (в этом примере «facebook-android-sdk-4.7.0.aar»)
Затем включите новую библиотеку в качестве зависимости модуля. Теперь вы можете использовать встроенный AAR без включения источников в проект.
Кредит в Facebook за этот взлом. Я нашел решение при интеграции Android SDK в проект.
источник
apply plugin: 'com.android.application'
наapply plugin: 'com.android.library'
В моем случае ни один из ответов выше не сработал! так как у меня был другой продукт
repositories{ flatDir{ dirs 'libs' } }
не сработало! В итоге я указал точное местоположение каталога libs :
}
Думаю, нужно вводить flatDirs как это, когда в build.gradle есть разные productFlavors
источник
В моем случае я просто помещаю файл aar в libs и добавляю
dependencies { ... api fileTree(dir: 'libs', include: ['*.aar']) ... }
в build.gradle и все работает. Я думаю, что это похоже на сгенерированную зависимость по умолчанию:
implementation fileTree(dir: 'libs', include: ['*.jar'])
источник
Эта строка включает в себя все
aar
иjar
файлы изlibs
папки:источник
Это решение работает с Android Studio 4.0.1.
Помимо создания нового модуля, как предложено в приведенном выше решении, вы можете попробовать это решение.
Если у вас есть несколько модулей в вашем приложении и вы хотите добавить aar только к одному из модулей, тогда это решение пригодится.
В вашем корневом проекте build.gradle
Добавить
Затем в модуле, куда вы хотите добавить .aar файл локально. просто добавьте ниже строки кода.
}
Удачного кодирования :)
источник
Добавьте ниже в проект реализации файла gradle приложения (путь: ': имя проекта')
источник
Если вы уже используете Kotlin Gradle DSL, альтернатива этому:
Вот моя структура проекта
мой
app/build.gradle.kts
fileTree
flatDirs
Это
group
было необходимо из-за его обязательности (не является обязательным / имеет значение по умолчанию) в kotlinimplementation
, см. Ниже:Отказ от ответственности: разница с использованием
flatDirs
подхода № 1 и № 2, я все еще не знаю много, вы можете отредактировать / прокомментировать этот ответ.Ссылки:
источник
Это решение работает с Android Studio 4.0.1.
Помимо создания нового модуля, как предложено в приведенном выше решении, вы можете попробовать это решение.
Если у вас есть несколько модулей в вашем приложении и вы хотите добавить aar только к одному из модулей, тогда это решение пригодится.
В вашем корневом проекте build.gradle
Добавить
Затем в модуле, куда вы хотите добавить .aar файл локально. просто добавьте ниже строки кода.
}
Удачного кодирования :)
источник