Estou ciente desta pergunta: Adicionando arquivos .aar locais à minha compilação gradle, mas a solução não funciona para mim.
Tentei adicionar esta declaração ao nível superior do meu build.gradle
arquivo:
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
Também coloquei o slidingmenu.aar
arquivo /libs
e o referenciei na dependencies
seção: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
mas não funcionou.
Eu tentei compile files('libs/slidingmenu.aar')
também, mas sem sorte.
o que estou perdendo? Alguma ideia?
PS Android Studio 0.8.2
android
android-studio
android-gradle-plugin
build.gradle
aar
Alexey Dmitriev
fonte
fonte
Respostas:
Com base na resposta de Josiah, eis como eu consegui que ela funcionasse.
Seguindo suas instruções (em edição) ( Arquivo -> Novo -> Novo módulo -> Importar .JAR / .AAR ) e importe seu .AAR.
Em seguida, no seu projeto build.gradle (não no nível superior, em 'app'), adicione o seguinte (na seção de dependências):
Nota O nome do seu projeto deve corresponder ao nome da pasta que foi adicionada após a importação do arquivo AAR (no mesmo nível que
app/.idea
da pasta do nível superior). Ou, dito de outra maneira ...Isso funcionou para mim executando o Android Studio 0.8.0. Não se esqueça de sincronizar o gradle (usando o botão da barra de ferramentas ou em Arquivo-> Sincronizar ) depois de fazer isso.
(Obrigado a Josiah por me fazer seguir na direção certa)
(Nota: antes disso, tentei adicioná-lo à pasta libs, tentando manipular o nível superior
build.gradle
e o nível do aplicativobuild.gradle
, mas nada disso funcionou nos meus arquivos aars - os jar's funcionarão bem, mas não nos arquivos aar)fonte
Error:(25, 0) Required keys [path] are missing from map {name=mylibrary-debug}.
se eu usarcompile project(name:'mylibrary-debug')
.. O que estou perdendo?compile project(':Name-Of-Your-Project')
, substituíName-Of-Your-Project
pelo nome do meu arquivo .aar (sem a.aar
extensão). E funcionou.Atualização : como o @ amram99 mencionou, o problema foi corrigido a partir do lançamento do Android Studio v1.3.
Testado e verificado com as especificações abaixo
O que funciona agora
Agora você pode importar um arquivo aar local através da opção Arquivo> Novo> Novo módulo> Importar pacote .JAR / .AAR no Android Studio v1.3
No entanto, a resposta abaixo é verdadeira e eficaz, independentemente das alterações do Android Studio, pois ela se baseia em scripts gradle.
Resposta antiga: Em uma atualização recente, as pessoas no Android interromperam a inclusão de arquivos locais do AAR por meio da opção de menu Adicionar novo módulo do Android Studio. Verifique o problema listado aqui. Independentemente de tudo o que entra e sai da lista de recursos do IDE, o método abaixo funciona quando se trata de trabalhar com arquivos aar locais (testado hoje):
Coloque o arquivo aar no diretório libs (crie-o se necessário) e adicione o seguinte código em seu build.gradle:
fonte
repositories
parte é diferentebuild.gradle
para funcionar - a global. Adependencies
parte entra nos módulosbuild.gradle
. Por isso recebi o erro.Editar: A maneira correta (atualmente) de usar um arquivo AAR local como uma dependência de compilação é usar o assistente de importação de módulo (Arquivo | Novo Módulo | Importar pacote .JAR ou .AAR) que adicionará automaticamente o .aar como um módulo de biblioteca no seu projecto.
Resposta antiga
Tente o seguinte:
fonte
flatDir { dirs 'libs' }
bloco como mencionado no OP usando AS 8,13 / Gradle 2.1Eu consegui isso trabalhando no Android Studio 2.1. Eu tenho um módulo chamado "Native_Ads", que é compartilhado em vários projetos.
Primeiro, criei um diretório no meu módulo Native_ads com o nome 'aars' e depois coloquei o arquivo aar lá.
Estrutura de diretório:
Então, as outras mudanças:
Arquivo Gradle de nível superior:
Arquivo build.gradle do módulo de aplicativo: - sem alterações
Arquivo Settings.gradle (para incluir o módulo):
Arquivo Gradle para o módulo Native_Ads:
É isso aí. Limpe e construa.
fonte
A maneira mais fácil agora é adicioná-lo como um módulo
Isso criará um novo módulo contendo o arquivo aar, então você só precisará incluir esse módulo como uma dependência posteriormente
fonte
next
botão está acinzentado naCreate New Module
caixa de diálogo depois de selecionar ImportarJAR/AAR Package
?.aar
arquivo está dentro de um diretório de projeto, simplesmente coloquei o.aar
em minha área de trabalho e tentei novamente e ele funciona, obrigado pela sua solução!so you just need to include that module as a dependency afterwards
- como você faz isso?include
nosettings.gradle
deveria ser suficiente. Eu consegui funcionar. Obrigado!Esta é a minha estrutura e como eu resolvo isso:
No build.gradle
em Project / app / myModulesFolder / myLibXYZ
Eu coloquei isso:
Feito e funcionando bem, meu submódulo XYZ depende de alguma biblioteca do módulo principal.
fonte
Você pode fazer assim. Precisa ir no formato maven:
E então seu AAR precisa entrar em uma estrutura de pastas para um ID de grupo "com.example":
Em seguida, faça referência como uma dependência:
compile 'com.example:myaar:version@aar'
Onde
version
está a versão do seu arquivo aar (por exemplo, 3.0, etc)fonte
Para quem tem esse problema no Android Studio 1.4, consegui que ele funcionasse criando um módulo no projeto que contém duas coisas.
build.gradle com o seguinte conteúdo:
configurations.create("default")
artifacts.add("default", file('facebook-android-sdk-4.7.0.aar'))
o arquivo aar (neste exemplo 'facebook-android-sdk-4.7.0.aar')
Em seguida, inclua a nova biblioteca como uma dependência do módulo. Agora você pode usar um aar construído sem incluir as fontes no projeto.
Crédito para o Facebook por este hack. Encontrei a solução ao integrar o SDK do Android em um projeto.
fonte
apply plugin: 'com.android.application'
paraapply plugin: 'com.android.library'
No meu caso, nenhuma das respostas acima funcionou! desde que eu tinha diferentes productFlavors apenas adicionando
repositories{ flatDir{ dirs 'libs' } }
não funcionou! Acabei especificando a localização exata do diretório libs :
}
Acho que deve-se apresentar flatDirs como este quando houver diferentes productFlavors no build.gradle
fonte
No meu caso, eu apenas coloquei o arquivo aar em libs e adicionei
dependencies { ... api fileTree(dir: 'libs', include: ['*.aar']) ... }
no build.gradle e funciona. Eu acho que é semelhante com a dependência gerada padrão:
implementation fileTree(dir: 'libs', include: ['*.jar'])
fonte
Esta linha inclui todo
aar
ejar
arquivos dalibs
pasta:fonte
Adicione abaixo no projeto de implementação do arquivo gradle do aplicativo (caminho: ': nome do projeto')
fonte
Se você já usa o DSL Kotlin Gradle, a alternativa é usá-lo desta maneira:
Aqui está a estrutura do meu projeto
Minhas
app/build.gradle.kts
fileTree
flatDirs
A
group
era necessária, devido à sua obrigatória (não / opcional possui valor padrão) em Kotlinimplementation
, veja abaixo:Isenção de responsabilidade: a diferença usando a
flatDirs
abordagem no.1 e no.2, ainda não sei muito, você pode querer editar / comentar esta resposta.Referências:
fonte