Eu tenho experimentado o novo sistema de compilação Android e me deparei com um pequeno problema. Compilei meu próprio pacote aar de ActionBarSherlock, que chamei de 'actionbarsherlock.aar'. O que estou tentando fazer é realmente usar este aar para criar meu APK final. Se eu incluir toda a biblioteca ActionBarSherlock como um módulo da biblioteca android no meu projeto principal usando o projeto de compilação (': actionbarsherlock'), sou capaz de criar com êxito sem problemas.
Mas o meu problema é que eu quero fornecer essa dependência como um pacote de arquivos aar MANUALMENTE apenas se eu fosse um JAR, não consigo descobrir como incluí-lo corretamente no meu projeto. Eu tentei usar a configuração de compilação, mas isso não parece funcionar. Eu continuo recebendo, não consigo encontrar o símbolo durante a compilação, o que me diz que o pacote classes.jar do aar não está sendo incluído no caminho de classe.
Alguém sabe da sintaxe para incluir manualmente um pacote aar como um arquivo?
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"
}
EDIT: Portanto, a resposta é que não há suporte no momento. Aqui está o problema, se você quiser acompanhá-lo.
EDIT: Atualmente, como isso ainda não é suportado diretamente, a melhor alternativa parece ser a solução proposta em @RanWakshlak
EDIT: Também mais simples, usando a sintaxe proposta por @VipulShah
fonte
Respostas:
Siga as etapas abaixo para fazê-lo funcionar (eu testei no Android Studio 2.2)
Digamos que você tenha mantido o arquivo aar na pasta libs. (suponha que o nome do arquivo seja
cards.aar
)no aplicativo,
build.gradle
especifique a seguir e clique em sincronizar projeto com arquivos Gradle. Abra o nível de Projeto build.gradle e adicioneflatDir{dirs 'libs'}
como fez abaixoe agora abra o arquivo build.grdle no nível do aplicativo e adicione o
.aar
arquivoSe tudo correr bem, você verá que a entrada da biblioteca é feita em build -> exploded-aar
Observe também que se você estiver importando um arquivo .aar de outro projeto que possui dependências, também será necessário incluí-las no build.gradle.
fonte
compile
add dependência duas dependênciasdebugCompile(name:'cards-debug', ext:'aar')
ereleaseCompile(name:'cards-release', ext:'aar')
allprojects {...}
vai para o arquivo gradle de nível "projeto" e a segunda parte comdependencies {...}
deve ir para o arquivo gradle de nível "app".fonte
Alt+B
projeto limpo e reconstruir. Android Studio por que você é doloroso! Eu gostaria de ter o NetBeans IDE como Android Developer Platformaar
lib ao seu projetoVocê pode fazer referência a um arquivo aar de um repositório. Um maven é uma opção, mas existe uma solução mais simples: coloque o arquivo aar no diretório libs e adicione um repositório de diretórios.
Em seguida, faça referência à biblioteca na seção de dependência:
Você pode conferir a publicação no blog Min'an para obter mais informações.
fonte
implementation
etc. Isso é copiar e colar a solução. Muitas novas votações recebidas porque o Android Build Gradle Plugin 4.0.0 agora gera um erro em vez de ignorar caminhos .aar quebradosA abordagem abaixo funciona com o estúdio Android mais recente (> v0.8.x):
Salve o
aar
arquivo nalibs
pasta do módulo de aplicativo (por exemplo<project>/<app>/libs/myaar.aar
:)Adicione o seguinte a build.gradle da pasta do módulo "app" (não a raiz do projeto build.gradle). Observe o nome na linha de compilação, é myaar @ aar não myaar.aar.
Clique
Tools -> Android -> Sync Project with Gradle Files
fonte
antes (padrão)
basta adicionar
'*.aar'
nainclude
matriz.funciona bem no Android Studio 3.x.
se você quiser ignorar alguma biblioteca? faça assim.
fonte
implementation fileTree(include: ['*.?ar'], dir: 'libs')
Acabei de ter sucesso!
Copie o arquivo mylib-0.1.aar na pasta libs /
Adicione estas linhas na parte inferior do build.gradle (deve ser app, não projeto):
Por enquanto, tudo bem. Aí vem o ponto mais importante:
Gradle precisa acessar a rede para dependências, a menos que o modo offline esteja ativado.
Certifique-se de ter ativado o trabalho off-line através da caixa de seleção em Estruturas de projeto / Gradle
- OU -
Defina as configurações de proxy para acessar a rede.
Para definir as configurações de proxy, você deve modificar o arquivo gradle.properties do projeto , configurando http e https separadamente, como abaixo:
Espero que isso funcione.
fonte
Atualmente, não há suporte para a referência a um arquivo .aar local (conforme confirmado por Xavier Ducrochet)
O que você pode fazer é configurar um repositório Maven local (muito mais simples do que parece) e fazer referência ao .aar a partir daí.
Eu escrevi um post do blog detalhando como fazê-lo funcionar aqui:
http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds
fonte
Você pode adicionar várias
aar
dependências com apenas algumas linhas de código.Adicione
flatDir
repositório local :Adicione todos os diretórios
aar
inlibs
àcompile
configuração de dependência:fonte
libs
pasta.Infelizmente, nenhuma das soluções aqui funcionou para mim (eu recebo dependências não resolvidas). O que finalmente funcionou e é a maneira mais fácil do IMHO: Destaque o nome do projeto no Android Studio e, em seguida, Arquivo -> Novo módulo -> Importar pacote JAR ou AAR. O crédito vai para a solução neste post
fonte
Existem 2 maneiras:
A primeira maneira
Create New Module
janelaFile -> New -> New Module
Selecione o
Import .JAR/.AAR Package
item e clique noNext
botãoAdicione uma dependência no
build.gradle
arquivo que pertence ao seuapp
módulo.Isso é tudo.
O segundo caminho
Crie uma pasta no
libs
diretório, comoaars
.Coloque seu aar lib na pasta aars.
Adicione o snippet de código
no seu
build.gradle
arquivo pertence ao módulo do aplicativo.build.gradle
arquivo que pertence ao seuapp
módulo.Isso é tudo.
Se você sabe ler chinês, pode consultar o blog 是 是 AAR 文件 以及 如何 在 Android 开发 中 使用
fonte
Com o Android Studio 3.4 e Gradle 5, você pode simplesmente fazer assim
fonte
ATUALIZAR O ANDROID STUDIO 3.4
fonte
Eu também tive esse problema. Este relatório de problema: https://code.google.com/p/android/issues/detail?id=55863 parece sugerir que a referência direta ao arquivo .AAR não é suportada.
Talvez a alternativa, por enquanto, seja definir a biblioteca actionbarsherlock como uma biblioteca Gradle no diretório pai do seu projeto e referenciá-la adequadamente.
A sintaxe é definida aqui http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Referencing-a-Library
fonte
Encontrei esta solução alternativa no rastreador de problemas do Android: https://code.google.com/p/android/issues/detail?id=55863#c21
O truque (não uma correção) é isolar seus arquivos .aar em um subprojeto e adicionar suas bibliotecas como artefatos:
Mais informações: Manipulação de dependências transitivas para artefatos locais-jarros-e-aar
fonte
compile project(':mobile')
em android / app / build.gradle,configurations.maybeCreate("default")
em android / mobile / build.gradle,include ':mobile'
em android / settings.gradleNo meu caso, tenho algumas representações na minha biblioteca e quando crio uma
aar
delas falhei, devido às representações perdidas, portanto, minha solução é adicionar todas as representações da minha biblioteca com umarr
arquivo.Portanto, o nível do meu projeto
build.gradle
é assim:build.gradle(modile app)
tão:e biblioteca
build.gradle
:fonte
Eu tentei todas as soluções aqui, mas nenhuma está funcionando, então percebo que cometi um erro, coloquei a
.aar
pasta errada, como você pode ver abaixo, pensei em colocar na pasta raiz, então criei umalibs
pasta lá (1 na foto ), mas dentro da pasta do aplicativo, já existe umlibs
, você deve colocar em segundolibs
, espero que ajude aqueles que têm o mesmo problema que o meu:fonte
A maneira padrão de importar o arquivo AAR em um aplicativo é fornecida em https://developer.android.com/studio/projects/android-library.html#AddDependency
Clique em Arquivo> Novo> Novo Módulo. Clique em Importar pacote .JAR / .AAR e clique em Avançar. Digite o local do arquivo AAR ou JAR compilado e clique em Concluir.
Consulte o link acima para as próximas etapas.
fonte
Apenas para simplificar a resposta
Se o arquivo .aar estiver presente localmente, inclua
compile project(':project_directory')
nas dependências do build.gradle do seu projeto.Se o arquivo .aar estiver presente no controle remoto, inclua
compile 'com.*********.sdk:project_directory:0.0.1@aar'
nas dependências do build.gradle do seu projeto.fonte
No meu caso, basta trabalhar quando adiciono "projeto" para compilar:
fonte
você pode fazer algo assim:
Coloque suas bibliotecas locais (com a extensão: .jar, .aar, ...) na pasta 'libs' (ou outra, se desejar).
No build.gradle (nível do aplicativo), inclua esta linha nas dependências
fileTree de implementação (incluem: ['* .jar', '* .aar'], dir: 'libs')
fonte