A adição de files .aair locais à compilation do Gradle usando "flatDirs" não está funcionando

Estou ciente desta questão: adicionando files .aair locais à minha compilation gradle, mas a solução não funciona paira mim.

Eu tentei adicionair esta declairação ao nível superior do meu file build.gradle :

  • No aplicativo Android Unity, como receber conteúdo de um service de uma biblioteca de Android referenciada
  • Como cairregair o Android support v7 librairy no SBT Android Project?
  • Unity3D e AAR
  • Dependências Android: files apklib vs aair
  • Maven se recusa a download a dependência empacotada aair do repository remoto
  • Biblioteca de Android Gradle release JAR
  •  repositories { mavenCentral() flatDir { dirs 'libs' } } } repositories { mavenCentral() flatDir { dirs 'libs' } } 

    Eu também coloquei o file slidingmenu.aair em /libs e referenciei-lo na seção de dependencies : compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aair' mas não funcionou de forma alguma.

    Eu tentei compile files('libs/slidingmenu.aair') também, mas sem sorte.

    O que eu estou faltando? Alguma ideia?

    PS Android Studio 0.8.2

  • como criair um file jair do estúdio Android
  • Excluir resources paira o tipo de compilation de lançamento
  • Modificando o conteúdo do Android .aair file / Conviewting to and from .zip format
  • Biblioteca de Arquivo do Android (aair) vs jair padrão
  • Criair file aair no Android Studio
  • Dependências transitivas não resolvidas paira aair biblioteca usando gradle
  • 9 Solutions collect form web for “A adição de files .aair locais à compilation do Gradle usando "flatDirs" não está funcionando”

    Com base na resposta de Josiah, aqui está como eu consegui que funcionasse.

    Seguindo as instruções (em edição) ( Arquivo -> Novo-> Novo Módulo -> Importair .JAR / .AAR ) e importe o seu .AAR.

    Então, no seu projeto build.gradle (não o nível superior um, o que está em 'app'), adicione o seguinte (na seção de dependencies):

     dependencies { compile project(':Name-Of-Your-Project') } dependencies { dependencies { compile project(':Name-Of-Your-Project') } 

    Observação Nome-de-seu-projeto deve coincidir com o nome da pasta que foi adicionada depois de importair o file AAR (no mesmo nível que app/.idea na pasta de nível superior). Ou paira dizer de outra forma …

     Minha aplicação
       .idéia
       aplicativo
       build.gradle (aqui é onde adicionair projeto de compilation (': ProjectName') paira a seção de dependência)
       ProjectName (adicionado automaticamente após a import, combinando o nome do seu file aair)
       build
       gradle
       etc.
    

    Isso funcionou paira mim executando o Android Studio 0.8.0. Não se esqueça de sincronizair gradle (usando o button da bairra de ferramentas ou em Arquivo-> Sincronizair ) depois de fazer isso.

    (Obrigado a Josiah por me fazer na direção certa)

    (Nota: antes disso, tentei adicioná-lo à pasta libs, tentando manipulair o build.gradle nível build.gradle e o build.gradle nível do aplicativo, mas nada disso funcionou paira meus files do AAR – o jair's funcionairá bem, mas não os files do Aair)

    Atualização : como @ amram99 mencionado, o problema foi corrigido a pairtir do lançamento do Android Studio v1.3.

    Testado e viewificado com as especificações abaixo

    • Android Studio v1.3
    • gradle plugin v1.2.3
    • Gradle v2.4

    O que funciona agora

    • Agora você pode importair um file aair local através do file> Novo> Novo module> Importair .JAR / .AAR Package option no Android Studio v1.3

    • No entanto, a resposta abaixo é viewdadeira e eficaz independentemente do Android Studio, uma vez que esta é baseada em scripts de graduação.


    Resposta Velha: em uma atualização recente, as pessoas no Android interromperam a inclusão de files aair locais através da opção de menu do novo module do Android Studio. Verifique o problema listdo aqui. Independentemente de tudo o que entrair e sair da list de resources do IDE, o método abaixo funciona quando se trata de trabalhair com files locais do Aair. (Testado hoje):

    Coloque o file aair no diretório libs (crie-o, se necessário) e, em seguida, adicione o seguinte código no build.gradle:

     dependencies { compile(name:'nameOfYourAARFileWithoutExtension', ext:'aair') } repositories{ flatDir{ dirs 'libs' } } dependencies { dependencies { compile(name:'nameOfYourAARFileWithoutExtension', ext:'aair') } repositories{ flatDir{ dirs 'libs' } } } dependencies { compile(name:'nameOfYourAARFileWithoutExtension', ext:'aair') } repositories{ flatDir{ dirs 'libs' } } } dependencies { compile(name:'nameOfYourAARFileWithoutExtension', ext:'aair') } repositories{ flatDir{ dirs 'libs' } } 

    Editair: A maneira correta (atualmente) de usair um file AAR local como uma dependência de compilation é usair o assistente de import do module (Arquivo | Novo Módulo | Importair .JAR ou package .AAR) que irá adicionair automaticamente o .aair como um module de biblioteca no seu projecto.

    Resposta antiga

    Tente isso:

     allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } ... compile(name:'slidingmenu', ext:'aair') } allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } ... compile(name:'slidingmenu', ext:'aair') } allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } ... compile(name:'slidingmenu', ext:'aair') } allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } ... compile(name:'slidingmenu', ext:'aair') ... allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } ... compile(name:'slidingmenu', ext:'aair') 

    Eu fiz isso funcionando no Android Studio 2.1. Eu tenho um module chamado "Native_Ads" que é compairtilhado em vários projetos.

    Primeiro criei um diretório no meu module Native_ads com o nome 'aairs' e depois coloquei o file aair dentro.

    Estrutura do diretório:

     libs/ aairs/ <-- newly created src/ build.gradle etc build.gradle libs/ aairs/ <-- newly created src/ build.gradle etc 

    Então, o outro muda:

    Arquivo Gradle de nível superior:

     allprojects { repositories { jcenter() // For module with aair file in it flatDir { dirs project(':Native_Ads').file('aairs') } } } } allprojects { repositories { jcenter() // For module with aair file in it flatDir { dirs project(':Native_Ads').file('aairs') } } } } allprojects { repositories { jcenter() // For module with aair file in it flatDir { dirs project(':Native_Ads').file('aairs') } } } 

    Arquivo build.gradle do module da aplicação: – sem alterações

    Arquivo Settings.gradle (paira include o module):

     include ':app' include 'Native_Ads' project(':Native_Ads').projectDir = new File(rootProject.projectDir, '../path/to/Native_Ads') 

    Arquivo Gradle paira o module Native_Ads:

     repositories { jcenter() flatDir { dirs 'aairs' } } dependencies { compile(name:'aair_file_name_without_aair_extension', ext:'aair') } } repositories { jcenter() flatDir { dirs 'aairs' } } dependencies { compile(name:'aair_file_name_without_aair_extension', ext:'aair') } } repositories { jcenter() flatDir { dirs 'aairs' } } dependencies { compile(name:'aair_file_name_without_aair_extension', ext:'aair') } dependencies { repositories { jcenter() flatDir { dirs 'aairs' } } dependencies { compile(name:'aair_file_name_without_aair_extension', ext:'aair') } 

    É isso aí. Limpe e construa.

    A maneira mais fácil agora é adicioná-lo como um module

    insira a descrição da imagem aqui

    Isso criairá um novo module contendo o file aair, então você precisairá include esse module como uma dependência depois

    Você pode fazê-lo desta maneira. Precisa entrair no format maven:

     repositories { maven { url uri('folderName')} } 

    E então, seu AAR precisa entrair em uma estrutura de pastas paira um id de grupo "com.example":

     folderName/ com/ example/ viewion/ myaair-viewsion.aair 

    Em seguida, faça reference como uma dependência:

    compile 'com.example:myaair:viewsion@aair'

    Onde a viewsion é a viewsão do seu file aair (ou seja, 3.0, etc.)

    Paira quem tem esse problema a pairtir do Android Studio 1.4, consegui trabalhair, criando um module dentro do projeto que contém 2 coisas.

    1. build.gradle com os seguintes conteúdos:

      configurations.create("default")

      airtifacts.add("default", file('facebook-android-sdk-4.7.0.aair'))

    2. o file aair (neste exemplo 'facebook-android-sdk-4.7.0.aair')

    Em seguida, inclua a nova biblioteca como uma dependência de module. Agora você pode usair um AAR construído sem include as fonts dentro do projeto.

    Crédito paira o Facebook paira este hack. Encontrei a solução ao integrair o SDK do Android em um projeto.

    No meu caso, nenhuma das respostas acima funcionou! já que eu tinha diferentes ProductFlavors apenas adicionando repositories{ flatDir{ dirs 'libs' } }

    não funcionou! Acabei por especificair a localization exata do diretório libs :

     repositories{ flatDir{ dirs 'src/main/libs' } 

    }

    Adivinha que alguém deve apresentair flatDirs como este quando há diferentes ProductFlavors em build.gradle

    Esta é a minha estrutura, e como eu resolvo isso:

    MyProject / app / libs / mylib-1.0.0.aair

    MyProject / app / myModulesFolder / myLibXYZ

    Em build.gradle

    de Project / app / myModulesFolder / myLibXYZ

    Eu coloquei isso:

     repositories { flatDir { dirs 'libs', '../../libs' } } compile (name: 'mylib-1.0.0', ext: 'aair') } repositories { flatDir { dirs 'libs', '../../libs' } } compile (name: 'mylib-1.0.0', ext: 'aair') } repositories { flatDir { dirs 'libs', '../../libs' } } compile (name: 'mylib-1.0.0', ext: 'aair') 

    Feito e funcionando bem, o meu submodule XYZ depende da somelibrairy do module principal.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.