Я экспериментировал с новой системой сборки Android и столкнулся с небольшой проблемой. Я собрал свой собственный aar-пакет ActionBarSherlock, который я назвал «actionbarsherlock.aar». На самом деле я пытаюсь использовать этот файл для создания моего окончательного APK. Если я включу всю библиотеку ActionBarSherlock в качестве модуля android-библиотеки в свой основной проект с использованием проекта компиляции (': actionbarsherlock'), я смогу успешно собрать без проблем.
Но моя проблема в том, что я хочу предоставить эту зависимость в виде пакета файлов aar ВРУЧНУЮ, просто если бы я использовал JAR, я не могу понять, как правильно включить его в свой проект. Я пытался использовать конфигурацию компиляции, но, похоже, это не работает. Я продолжаю получать, что не могу найти символ во время компиляции, который говорит мне, что class.jar из пакета aar не включается в classpath.
Кто-нибудь знает синтаксис для ручного включения пакета aar в файл?
build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile files('libs/actionbarsherlock.aar')
}
android {
compileSdkVersion 15
buildToolsVersion "17.0"
}
РЕДАКТИРОВАТЬ: Таким образом, ответ заключается в том, что в настоящее время он не поддерживается, вот проблема, если вы хотите отслеживать его.
РЕДАКТИРОВАТЬ: В настоящее время, поскольку это все еще не поддерживается напрямую, лучшей альтернативой, кажется, является предлагаемое решение от @RanWakshlak
РЕДАКТИРОВАТЬ: Также проще с использованием синтаксиса, предложенного @VipulShah
источник
Ответы:
Пожалуйста, следуйте приведенным ниже инструкциям, чтобы заставить его работать (я тестировал его до Android Studio 2.2)
Допустим, вы сохранили файл aar в папке libs. (предположим, что имя файла есть
cards.aar
)Затем в приложении
build.gradle
укажите следующее и нажмите синхронизировать проект с файлами Gradle. Откройте уровень проекта build.gradle и добавьте,flatDir{dirs 'libs'}
как это было сделано нижеа теперь откройте файл уровня приложения build.grdle и добавьте
.aar
файлЕсли все пойдет хорошо, вы увидите, что запись библиотеки сделана в build -> exploded-aar
Также обратите внимание, что если вы импортируете файл .aar из другого проекта, который имеет зависимости, вам также необходимо включить их в свой build.gradle.
источник
compile
зависимости добавьте две зависимостиdebugCompile(name:'cards-debug', ext:'aar')
иreleaseCompile(name:'cards-release', ext:'aar')
allprojects {...}
идет в файл Gradle уровня «проекта», а второй блок сdependencies {...}
должен идти в файл Gradle уровня «приложения».источник
Alt+B
> очистите и перестройте проект. Android Studio почему тебе больно! Я хочу использовать IDE NetBeans в качестве платформы разработчика Androidaar
библиотеку в свой проектВы можете ссылаться на файл AAR из репозитория. Maven - это вариант, но есть более простое решение: поместите файл aar в каталог libs и добавьте репозиторий каталога.
Затем обратитесь к библиотеке в разделе зависимостей:
Вы можете проверить сообщение в блоге Min'an для получения дополнительной информации.
источник
implementation
и т. Д. Это решение для копирования и вставки. Поступило много новых голосов, потому что Android Build Gradle Plugin 4.0.0 теперь выдает ошибку, а не игнорирует неработающие пути .aarПриведенный ниже подход работает с последней версией Android Studio (> v0.8.x):
Сохранить в
aar
файл под приложением модульlibs
папки (например:<project>/<app>/libs/myaar.aar
)Добавьте ниже в build.gradle вашей папки модуля «app» (не в корневой каталог вашего проекта build.gradle). Обратите внимание на имя в строке компиляции, это myaar @ aar, а не myaar.aar.
щелчок
Tools -> Android -> Sync Project with Gradle Files
источник
раньше (по умолчанию)
просто добавьте
'*.aar'
вinclude
массив.это хорошо работает на Android Studio 3.x.
если вы хотите игнорировать некоторые библиотеки? делай так
источник
implementation fileTree(include: ['*.?ar'], dir: 'libs')
Я только что преуспел!
Скопируйте файл mylib-0.1.aar в папку libs /.
Добавьте эти строки в конец build.gradle (должно быть приложение, а не проект):
Все идет нормально. Вот самое важное:
Gradle должен получить доступ к сети для зависимостей, если не включен автономный режим.
Убедитесь, что вы включили автономную работу с помощью флажка в Project Structures / Gradle
-- ИЛИ --
Настройте параметры прокси для доступа к сети.
Чтобы настроить параметры прокси-сервера, необходимо изменить файл проекта gradle.properties , настроив http и https отдельно, как показано ниже:
Надеюсь, это работает.
источник
В настоящее время ссылки на локальный файл .aar не поддерживаются (что подтверждено Xavier Ducrochet)
Вместо этого вы можете создать локальный репозиторий Maven (гораздо более простой, чем кажется) и ссылаться на .aar оттуда.
Я написал пост в блоге, подробно описывающий, как заставить его работать здесь:
http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds
источник
Вы можете добавить несколько
aar
зависимостей с помощью всего лишь нескольких строк кода.Добавить локальный
flatDir
репозиторий:Добавить каждый
aar
вlibs
каталоге дляcompile
конфигурации зависимостей:источник
libs
папку.К сожалению, ни одно из решений здесь не сработало для меня (я получаю неразрешенные зависимости). Что, наконец, сработало, и это самый простой способ IMHO: выделите имя проекта из Android Studio, затем File -> New Module -> Import JAR или AAR Package. Кредит идет к решению в этом посте
источник
Есть 2 способа:
Первый способ
Create New Module
окну с помощьюFile -> New -> New Module
Выберите
Import .JAR/.AAR Package
предмет и нажмитеNext
кнопкуДобавьте зависимость в
build.gradle
файл, который принадлежит вашемуapp
модулю.Это все.
Второй способ
Создайте папку в
libs
каталоге, напримерaars
.Поместите свою aar lib в папку aars.
Добавьте фрагмент кода
в ваш
build.gradle
файл принадлежит модулю приложения.build.gradle
файл, который принадлежит вашемуapp
модулю.Это все.
Если вы можете читать по-китайски, вы можете проверить блог 在 是 AAR 文件 以及 如何 在 Android 开发 中 使用
источник
С Android Studio 3.4 и Gradle 5 вы можете просто сделать это следующим образом
источник
ОБНОВЛЕНИЕ ANDROID STUDIO 3.4
источник
У меня тоже была эта проблема. Этот отчет о проблеме: https://code.google.com/p/android/issues/detail?id=55863, по- видимому, предполагает, что прямая ссылка на файл .AAR не поддерживается.
Возможно, альтернативой на данный момент является определение библиотеки actionbarsherlock как библиотеки Gradle в родительском каталоге вашего проекта и ссылки соответственно.
Синтаксис определяется здесь http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Referencing-a-Library
источник
Я нашел этот обходной путь в трекере проблем Android: https://code.google.com/p/android/issues/detail?id=55863#c21
Хитрость (а не исправление) состоит в том, чтобы изолировать ваши файлы .aar в подпроект и добавить ваши библиотеки в качестве артефактов:
Дополнительная информация: Обработка транзитивных зависимостей для локальных артефактов jars-and-aar
источник
compile project(':mobile')
в android / app / build.gradle,configurations.maybeCreate("default")
в android / mobile / build.gradle,include ':mobile'
в android / settings.gradleВ моем случае у меня есть некоторые зависимости в моей библиотеке, и когда я создавал
aar
из нее, я потерпел неудачу из-за пропущенных зависимостей, поэтому мое решение состоит в том, чтобы добавить все зависимости из моей библиотеки сarr
файлом.Так что мой уровень проекта
build.gradle
выглядит так:build.gradle(modile app)
так:и библиотека
build.gradle
:источник
Я попробовал все решения здесь, но ни одно не работает, затем я понимаю, что допустил ошибку, я положил
.aar
в неправильную папку, как вы можете видеть ниже, я думал, что я должен положить в корневую папку, поэтому я создалlibs
папку там (1 на рисунке) ), но внутри папки приложения уже естьlibs
, вы должны поставить вторуюlibs
, надеюсь, это поможет тем, у кого такая же проблема, как у меня:источник
Стандартный способ импорта файла AAR в приложении приведен в https://developer.android.com/studio/projects/android-library.html#AddDependency.
Нажмите Файл> Новый> Новый модуль. Нажмите Импорт пакета .JAR / .AAR, затем нажмите Далее. Введите местоположение скомпилированного файла AAR или JAR, затем нажмите «Готово».
Пожалуйста, обратитесь по ссылке выше для следующих шагов.
источник
Просто чтобы упростить ответ
Если файл .aar присутствует локально, включите его
compile project(':project_directory')
в зависимости build.gradle вашего проекта.Если файл .aar присутствует на удаленном компьютере,
compile 'com.*********.sdk:project_directory:0.0.1@aar'
включите его в зависимости build.gradle вашего проекта.источник
В моем случае просто работайте, когда я добавляю «проект» для компиляции:
источник
Вы можете сделать что-то вроде этого:
Поместите свои локальные библиотеки (с расширением: .jar, .aar, ...) в папку 'libs' (или другую, если хотите).
В build.gradle (уровень приложения) добавьте эту строку в зависимости
реализация fileTree (включает: ['* .jar', '* .aar'], dir: 'libs')
источник