импорт существующего JAR или AAR в качестве нового модуля проекта

как импортировать пакет JAR или AAR в качестве нового модуля проекта в новую Android Studio Arctic Fox | 2020.3.1 Канарейка 9 ?

пожалуйста, дайте мне знать.


person Didier Supernover    schedule 12.03.2021    source источник
comment
у меня такая же проблема не знаю как решить   -  person mmdreza baqalpour    schedule 20.05.2021
comment
У меня тоже такая же проблема. У меня Бета 2 версия   -  person Abhay Koradiya    schedule 09.06.2021
comment
Пробовали ли вы programmersought.com/article/36706527385   -  person p2pdops    schedule 16.06.2021
comment
Я предоставил решение ниже. Проголосуйте, если это поможет, пожалуйста!   -  person zuko    schedule 30.07.2021


Ответы (6)


Это работает на Android Studio Arctic Fox Beta 02

Шаг 1: Перейдите к файлу -> Структура проекта. Вы также можете нажать Ctrl+Alt+Shift+S

Вы увидите окно, как показано ниже.

введите здесь описание изображения

Шаг 2: Нажмите на модуль приложения, как показано на изображении.

Шаг 3: Щелкните значок +, отмеченный на изображении.

введите здесь описание изображения

Шаг 4: Вы увидите возможность выбрать зависимость jar/aar. Нажмите здесь

введите здесь описание изображения

Вы увидите другое окно, как и выше, с просьбой указать путь. Укажите путь, по которому вы сохранили файл aar/jar, и нажмите «ОК».

Это должно работать

person AgentP    schedule 10.06.2021
comment
Все еще не могу выбрать файл aar из проводника на шаге 1. - person Abhay Koradiya; 10.06.2021
comment
@AbhayKoradiya Как насчет того, чтобы вручную скопировать и вставить путь в это поле? - person AgentP; 10.06.2021
comment
Попробовал. Не работает - person Abhay Koradiya; 10.06.2021

На мой взгляд, лучший способ сделать это — развернуть 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().

person Fco P.    schedule 12.06.2021
comment
это не вопрос. Нужно сделать это из пользовательского интерфейса, как и в предыдущей версии. - person Abhay Koradiya; 16.06.2021

Вы можете напрямую реализовать, используя путь к файлу JAR/ARR.

implementation files('/File Path/file.aar')
person Tushar Lathiya    schedule 16.06.2021
comment
это не вопрос. Нужно сделать это из пользовательского интерфейса, как и в предыдущей версии. - person Abhay Koradiya; 16.06.2021

Шаг 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.

person Didier Supernover    schedule 17.06.2021

Для тех, кто все еще ищет решение.

  1. Создайте новый проект приложения для Android.
  2. Преобразуйте новый проект в автономный библиотечный модуль.
  3. Добавьте плагин maven-publish на уровень модуля build.gradle
  4. Подключите свой проект к репозиторию Github (или создайте новый).
  5. На уровне модуля 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
           }
       }
   }
...
}
  1. Если все подключено правильно, сохраните работу и запустите задачу: ./gradlew publish. Журналы ошибок просты, поэтому просто обратитесь к инструкциям и Google для получения дополнительной помощи.

  2. Чтобы установить успешно опубликованный пакет в желаемый проект, используйте ту же процедуру аутентификации для publishing.repositories, вам не нужна вторая половина, publishing.publications.

  3. пример: implementation 'com.zuko.libraries:choose-a-name:1.0.0'

person zuko    schedule 30.07.2021

Вы можете настроить в себе репозиторий 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 будут ожидать, что любые транзитивные зависимости будут находиться в пути к классам, если только они не являются толстыми банками (упакуйте все транзитивные зависимости внутри артефакта), поэтому их необходимо добавить явно как зависимости.

person rahul.taicho    schedule 13.06.2021
comment
это не вопрос. Нужно сделать это из пользовательского интерфейса, как в предыдущей версии. - person Abhay Koradiya; 16.06.2021
comment
поскольку это канареечная версия (нестабильная), функции могут не работать должным образом все время, вы можете зарегистрировать ошибку на их трекере, если графический интерфейс не работает. Между тем, это может помочь в качестве обходного пути, если кто-то заблокирован из-за того, что выпуск canary не работает должным образом. - person rahul.taicho; 16.06.2021
comment
Привет @rahul.taicho stackoverflow.com/users/3622901/rahul-taicho Не могли бы вы дать рекомендации по следующим вопрос: stackoverflow.com/questions/67985653/ - person SVK; 16.06.2021