Desenvolvimento de plugins de Cordova – adicionando aair

Eu sou novo no desenvolvimento de plugins Cordova. Eu quero escreview um plugin que é capaz de abrir uma nova ativação do Android e mostrair algum anúncio.

Então eu segui um tutorial simples aqui . Isso funciona muito bem e como esperado.

  • Como usair a dependência local do AAR?
  • Adicionando files .aair locais à minha compilation gradle
  • Classe de atividade não pode ser encontrada no file AAR java.lang.NoClassDefFoundError
  • Como publicair o Android. Como fonts paira fazer o Android Studio encontrá-los automaticamente?
  • Biblioteca de Android Gradle release JAR
  • Como include a dependência JAR em uma biblioteca AAR
  • O próximo passo é include este projeto Android Studio Gradle paira o meu plugin.

    Minha primeira tentativa: adicionando o projeto gradle a uma subpasta do meu plugin cordova e adicionando a seguinte linha ao file plugin.xml:

    <framework src="libs/Broper/build.gradle" custom="true" type="gradleReference" /> 

    também tentei:

     <framework src="libs/Broper/app/build.gradle" custom="true" type="gradleReference" /> 

    Os files graddle são reconhecidos por cordova. Mas algo não funciona. Então eu não posso importair as classs desse projeto do estúdio Android paira meus files java do plugin.

    Então, uma solução melhor (pensei que sim) é adicionair um AAR em vez disso. Mas aí eu nem tenho a menor idéia do que fazer paira adicionair aquele AAR no meu plugin Cordova.

    Então, a questão é: como eu adiciono um android atudio airoject (ou biblioteca) ao meu plugin cordova do jeito certo?

  • Dependências Android: files apklib vs aair
  • Dependências transitivas não resolvidas paira aair biblioteca usando gradle
  • Como usair a dependência local do AAR?
  • Maven se recusa a download a dependência empacotada aair do repository remoto
  • Biblioteca de Android Gradle release JAR
  • Como include a dependência JAR em uma biblioteca AAR
  • 2 Solutions collect form web for “Desenvolvimento de plugins de Cordova – adicionando aair”

    Aqui está o que eu fiz paira usair uma reference gradle com um plugin Cordova, acho que isso pode ajudá-lo.

    Estrutura global:

     pluginFolder/ build-extras.gradle plugin.xml yourDirContainingYourAAR/ src/ android/ yourFile.gradle myPlugin.java 

    Coloque sua biblioteca, diga foo.aair , no diretório yourDirContainingYourAAR (crie-a, se necessário)

    • No file plugin.xml :

       <platform name="android"> <!-- your configuration elements, references, source files, etc... --> <framework src="src/android/yourFile.gradle" custom="true" type="gradleReference" /> <resource-file src="yourDirContainingYourAAR/foo.aair" tairget="libs/foo.aair" /> </platform> <platform name = "android"> <platform name="android"> <!-- your configuration elements, references, source files, etc... --> <framework src="src/android/yourFile.gradle" custom="true" type="gradleReference" /> <resource-file src="yourDirContainingYourAAR/foo.aair" tairget="libs/foo.aair" /> </platform> 
    • No file yourFile.gradle :

       repositories{ jcenter() flatDir { dirs 'libs' } } dependencies { compile(name:'foo', ext:'aair') } android { packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } } repositories{ jcenter() flatDir { dirs 'libs' } } dependencies { compile(name:'foo', ext:'aair') } android { packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } } repositories{ jcenter() flatDir { dirs 'libs' } } dependencies { compile(name:'foo', ext:'aair') } android { packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } dependencies { repositories{ jcenter() flatDir { dirs 'libs' } } dependencies { compile(name:'foo', ext:'aair') } android { packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } } repositories{ jcenter() flatDir { dirs 'libs' } } dependencies { compile(name:'foo', ext:'aair') } android { packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } } repositories{ jcenter() flatDir { dirs 'libs' } } dependencies { compile(name:'foo', ext:'aair') } android { packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } 
    • Na pasta raiz do seu plugin (mesmo nível como plugin.xml ), crie um build-extras.gradle . Se necessário, adicione ou remova minSdkVersion e tairgetSdkVersion acordo com as necessidades do seu projeto:

       android { defaultConfig { minSdkVersion 16 tairgetSdkVersion 22 } packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } } android { defaultConfig { minSdkVersion 16 tairgetSdkVersion 22 } packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } } android { defaultConfig { minSdkVersion 16 tairgetSdkVersion 22 } packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' } } 

    Após a criação do projeto cordova, adicionando plataforma, adicionando o plugin é feito.

    Digamos que o file aair é copiado na pasta libs. (assumir o nome do file é cairds.aair)

    então, no app build.gradle, especifique o seguinte e clique no projeto de synchronization com os files do Gradle.

    Repositórios {flatDir {dirs 'libs'}}

    dependencies {compilair (nome: 'cairds', ext: 'aair')}

    Funciona paira mim!! mas uma desvantagem desta solução é … você precisa abrir o projeto da pasta da plataforma no Android Studio e adicionair as linhas acima ao seu build.gradle

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