как импортировать пакет JAR или AAR в качестве нового модуля проекта в новую Android Studio Arctic Fox | 2020.3.1 Канарейка 9 ?
пожалуйста, дайте мне знать.
как импортировать пакет JAR или AAR в качестве нового модуля проекта в новую Android Studio Arctic Fox | 2020.3.1 Канарейка 9 ?
пожалуйста, дайте мне знать.
Это работает на Android Studio Arctic Fox Beta 02
Шаг 1: Перейдите к файлу -> Структура проекта. Вы также можете нажать Ctrl+Alt+Shift+S
Вы увидите окно, как показано ниже.
Шаг 2: Нажмите на модуль приложения, как показано на изображении.
Шаг 3: Щелкните значок +, отмеченный на изображении.
Шаг 4: Вы увидите возможность выбрать зависимость jar/aar. Нажмите здесь
Вы увидите другое окно, как и выше, с просьбой указать путь. Укажите путь, по которому вы сохранили файл aar/jar, и нажмите «ОК».
Это должно работать
На мой взгляд, лучший способ сделать это — развернуть jar/aar в локальном репозитории maven. если вы устанавливаете maven, вы можете использовать репозиторий mavenLocal()
в gradle и читать оттуда, как и в любом другом репо, независимо от используемой вами IDE. Будут работать все версии Android Studio, будут работать все версии IntelliJ, будет работать VSCode, будет работать командная строка и т. д. Еще одним преимуществом является то, что вы сможете менять версии библиотеки, как и все остальные, просто измените версию в gradle (после развертывания новой) и будет работать для всех ваших проектов. Помещать банки/ары вручную в проект - это просто плохая практика, и она очень устарела.
После того, как вы установили maven, введите это в своем терминале:
mvn install:install-file -Dfile=d:\mylibrary-{version}.aar -DgroupId=com.example -DartifactId=mylibrary -Dversion={version} -Dpackaging=aar
Где вы меняете местами aar
и jar
в зависимости от типа. Имя пакета, идентификатор группы и имя библиотеки на ваше усмотрение, все будет работать. Я бы использовал пакет и имя библиотеки, а также версию 1.0, если у вас ее нет.
Вот ссылка для примера. Старый, но процесс тот же. mvn install
, затем потреблять из mavenLocal()
.
Вы можете напрямую реализовать, используя путь к файлу JAR/ARR.
implementation files('/File Path/file.aar')
Шаг 1. Поместите файл aar в папку libs. Возьмем, к примеру, имя файла supernover.aar.
Шаг 2. Разместите следующий код на уровне проекта.
build.gradle file,
allprojects {
repositories {
jcenter()
flatDir {
dirs 'libs'
}
}
}
и в модуле уровня приложения напишите приведенный ниже код,
dependencies {
Implementation(name:'supernover', ext:'aar')
}
Шаг 3. Затем нажмите «Синхронизировать проект с файлами Gradle».
Если все работает нормально, то вы увидите, что запись в библиотеку сделана в сборке -›intermediates-›expected-aar.
Для тех, кто все еще ищет решение.
maven-publish
на уровень модуля build.gradle
build.gradle
реализуйте поток проверки подлинности Github Packages. Я использую «zuko» в качестве примера — замените каждый экземпляр этого имени своим логином Github.android {
...
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/zuko/[git-repository]")
credentials {
username = 'zuko'
password = 'token' // this is a Git Personal Access Token
}
}
}
publications {
release(MavenPublication) {
groupId 'com.zuko.libraries'
artifactId 'choose-a-name'
version '1.0.0'
artifact("$buildDir/ogury-mediation-mopub-5.2.0.aar")
// you can actually put the artifact anywhere you want.
// This is the location of where you place your .aar file
}
}
}
...
}
Если все подключено правильно, сохраните работу и запустите задачу: ./gradlew publish
. Журналы ошибок просты, поэтому просто обратитесь к инструкциям и Google для получения дополнительной помощи.
Чтобы установить успешно опубликованный пакет в желаемый проект, используйте ту же процедуру аутентификации для publishing.repositories
, вам не нужна вторая половина, publishing.publications
.
пример: implementation 'com.zuko.libraries:choose-a-name:1.0.0
'
Вы можете настроить в себе репозиторий buildscript
, который ищет зависимости в локальном каталоге.
Используйте это, чтобы зарегистрировать локальный каталог в качестве репозитория в build.gradle
вашего модуля приложения, где libs
— это каталог в модуле приложения (<project>/app/libs/
).
buildscript {
repositories {
flatDir { dirs 'libs' }
}
}
затем объявите свои зависимости от локального файлового дерева, которое вы зарегистрировали ранее
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
}
Это будет включать все артефакты jar/aar, находящиеся в каталоге libs
, которые будут включены в зависимости вашего модуля.
PS: локальные артефакты jar/aar будут ожидать, что любые транзитивные зависимости будут находиться в пути к классам, если только они не являются толстыми банками (упакуйте все транзитивные зависимости внутри артефакта), поэтому их необходимо добавить явно как зависимости.