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 unbuild-extras.gradle
. Si es necesario, agregue o elimineminSdkVersion
ytargetSdkVersion
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!!