Cómo configurar AspectJ en Android Studio
Estoy tratando de configurar AspectJ en Android Studio .
Pero después de todos los ensayos y errores no funciona! Sorprendentemente, soy capaz de hacer que funcione con la versión Eclipse Kepler
Los pasos que seguí para Android Studio
- Ejemplo creado
Android
Project - Archivo> Configuración> buscado
AspectJ
en la sección de complementos - Suponiendo que no se haga nada más en Studio, excepto la configuración de los archivos build.gradle
- Se agregó la
compile 'org.aspectj:aspectjrt:1.8.1'
a la build.gradle (Module: app) - Created
Analytics_onBackPressed.aj
para la detección de pulsación del botón de retroceso - Creado
Analytics_OnClick.aj
para la detección de eventos de clic - Created
Analytics_onCreate.aj
para la detección de eventos de componentes oncreate - Creado clases de dependencia necesarias que las clases
*.aj
mencionadas anteriormente*.aj
internamente - Se han añadido los permisos necesarios en Manifest
- Ejecutar el proyecto no está detectando ninguno de los eventos (clic de botón, clic de clic o clic de botón de nuevo)
- Sigue estos enlaces ReferenceLinkOne , ReferenceLinkTwo y ReferenceLinkThree
Mi pregunta es lo que es más necesario para que AspectJ funcione con Android Studio
Pasos seguidos en Eclipse y consiguió AspectJ trabajando
- Descargado la versión de Kepler de
Eclipse
- A través de la opción Instalar nuevo software buscado por http://download.eclipse.org/tools/ajdt/43/update
-
AspectJ Development Tools (Required)
instaladasAspectJ Development Tools (Required)
. - Creación del proyecto android de ejemplo
- Created
Analytics_onBackPressed.aj
para la detección de pulsación del botón de retroceso - Creado
Analytics_OnClick.aj
para la detección de eventos de clic - Created
Analytics_onCreate.aj
para la detección de eventos de componentes oncreate - Se agregaron los permisos necesarios en el archivo de manifiesto
- Hizo clic derecho en el proyecto y el proyecto convertido en AspectJ por los siguientes
- Camino de compilación de Java configurado con la biblioteca de tiempo de ejecución de AspectJ
- Ahora, mientras ejecuto el proyecto, puedo detectar los componentes oncreate, presionar el botón de retroceso
Medio ambiente utilizado
Android Studio: 2.1.2
JRE: 1.8.0
Windows 7 Enterprise
¡Cualquier ayuda es muy apreciada!
EDIT: 1, Desde la salida, aún AspectJ no está configurado correctamente
Según este acoplamiento , creé el archivo del tarro de eclipse incluyendo archivos del *.aj
y dependencia correspondiente. Excluido AndroidManifest.xml
al crear el jar file
y el jar
creado
Proyecto creado en Android Studio. Colocó este archivo * .jar en el archivo libs. (apps> libs)
. He activado AspectJ agitando como se muestra a continuación
Ahora buscamos las propiedades de AspectJ y habilitamos
Ahora ejecutando el proyecto, debería estar creando registros que había puesto en los archivos *.aj
que está en el complemento. Desafortunadamente, estos registros no se imprimen en los registros de Android Studio.
El formulario que estoy concluyendo todavía AspectJ no está habilitado en este proyecto O hay un error de configuración
Divulgación: Soy el autor del plugin ofectivo de weaving de AspectJ .
Como se señala en la documentación de plugin de AspectJ weaver , el complemento no admite la compilación de archivos .aj
.
Para utilizar este complemento, tiene dos opciones:
- Cambie de
.aj
a aspectos de estilo de anotación . - Compile los archivos
.aj
fuera del IDE (IntelliJ Community / Android Studio), por ejemplo utilizando Maven / Gradle / Ant, y empaquetarlos en.jar
. Incluya esta.jar
como una dependencia en su proyecto y haga clic en el botón Buscar aspectos … , según la documentación.
He tenido varios éxitos tratando de conseguir AspectJ trabajando en Android Studio. Este enlace me ayudó a conseguir parte del camino (asume la configuración de compilación de Gradle para su proyecto). http://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/
Usando el bloque de código personalizado en el archivo build.gradle
, pude obtener aspectos definidos usando anotaciones en archivos .java
compilando y tejiendo correctamente en mi proyecto. Sin embargo, este mismo método no funcionó para mí cuando se definen aspectos nativos utilizando archivos .aj
. Espero que ayude.
IntelliJ no tiene soporte de herramientas para AspectJ, y Annotation Style AspectJ puede funcionar en Android Studio. Basta con tratar el código de aspecto como código Java.
Para más detalles, lea este aspecto para el estudio de Android – donde está AJDT plugin
Además, puede utilizar el complemento de gradle aspectjx que puede tejer kotlin código y demo está aquí