android cordova plugins android-studio aar

android - Desarrollo del complemento Cordova-agregando aar



plugins android-studio (3)

Después de la creación del proyecto cordova, se agrega la plataforma y se agrega el complemento.

Digamos que el archivo aar se copia en la carpeta libs. (suponga que el nombre del archivo es cards.aar)

luego, en la aplicación build.gradle, especifique lo siguiente y haga clic en sincronizar proyecto con archivos Gradle.

repositories { flatDir { dirs ''libs'' } } dependencies { compile(name:''cards'', ext:''aar'') }

¡¡Esto funciona para mi!! pero un inconveniente de esta solución es que debe abrir el proyecto desde la carpeta de la plataforma en Android Studio y agregar las líneas anteriores a su build.gradle

Soy nuevo en el desarrollo de plugins de cordova. Quiero escribir un complemento que pueda abrir una nueva actividad de Android y mostrar algún anuncio.

Entonces seguí un tutorial simple here . Eso funciona muy bien y como se esperaba.

El siguiente paso es incluir este proyecto de Android Studio Gradle en mi complemento.

Mi primer intento: agregar el proyecto gradle a una subcarpeta de mi complemento cordova y agregar la siguiente línea al archivo plugin.xml:

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

También probé:

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

Los archivos graddle son reconocidos por cordova. Pero algo no funciona. Por lo tanto, no puedo importar las clases de ese proyecto de estudio de Android a mis archivos java de complementos.

Entonces, una mejor solución (creo que sí) es agregar un AAR en su lugar. Pero allí ni siquiera tengo idea de qué hacer para agregar ese AAR en mi complemento cordova.

Entonces, la pregunta es: ¿cómo agrego un proyecto de Android Atudio (o biblioteca) a mi complemento de Córdoba de la manera correcta?


Esto es lo que he hecho para usar una referencia de gradle con un complemento de Cordova, creo que esto podría ayudarte.

Estructura global:

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

Coloque su biblioteca, digamos foo.aar , en el directorio yourDirContainingYourAAR ( yourDirContainingYourAAR si es necesario)

  • En el archivo 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.aar" target="libs/foo.aar" /> </platform>

  • En el archivo yourFile.gradle :

    repositories{ jcenter() flatDir { dirs ''libs'' } } dependencies { compile(name:''foo'', ext:''aar'') } android { packagingOptions { exclude ''META-INF/NOTICE'' exclude ''META-INF/LICENSE'' } }

  • En la carpeta raíz de su complemento (mismo nivel que plugin.xml ) cree un build-extras.gradle . Si es necesario, agregue o elimine minSdkVersion y targetSdkVersion acuerdo con las necesidades de su proyecto:

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


Tiene que haber una ligera modificación en la respuesta de Niko.

Cuando Gradle ejecuta la compilación utilizando la respuesta de Niko , busca las bibliotecas en la app/libs que no está presente en el proyecto (sí lo hace en el proyecto estándar de Android Studio, pero en la estructura del proyecto Android de Cordova la carpeta libs es diferente). Sin embargo, el complemento copia la biblioteca aar en app/src/main/libs que puede hacernos pensar que está copiando el archivo aar en app/libs

<resource-file src="yourDirContainingYourAAR/foo.aar" target="libs/foo.aar" />

Por lo tanto, el archivo gradle debe ser

repositories{ jcenter() flatDir { dirs ''src/main/libs'' } } dependencies { compile(name:''foo'', ext:''aar'') } android { packagingOptions { exclude ''META-INF/NOTICE'' exclude ''META-INF/LICENSE'' } }

Esto te dará una compilación exitosa de la aplicación

¡¡Salud!!