如何在Android Studio中配置AspectJ

Sre*_*ari 11 android aspectj android-studio aspectj-maven-plugin

我正在尝试在Android Studio中配置AspectJ.
但经过一切试验和错误,它不起作用!令人惊讶的是,我能够使用Eclipse Kepler版本

.我遵循Android Studio的步骤

  1. 创建了示例Android项目
  2. 文件>设置> AspectJ在插件部分搜索AspectJ的插件
  3. 假设在Studio中没有其他工作要做,除了build.gradle文件的配置
  4. 添加compile 'org.aspectj:aspectjrt:1.8.1'到build.gradle(模块:app)
  5. Analytics_onBackPressed.aj后退按钮检测而设计
  6. Analytics_OnClick.aj点击事件检测而创建
  7. Analytics_onCreate.aj组件创建事件检测创建
  8. 创建了上面提到的*.aj类将在内部调用的必要依赖类
  9. 在Manifest中添加了必需的权限
  10. 运行项目未检测到任何事件(按钮单击,创建或单击后退按钮)
  11. 按照这些链接ReferenceLinkOne,ReferenceLinkTwoReferenceLinkThree

我的问题是使AspectJ与Android Studio一起工作所需的更多问题


Eclipse中遵循的步骤使AspectJ正常工作

  1. 下载了EclipseKepler版本
  2. 通过安装新软件选项搜索http://download.eclipse.org/tools/ajdt/43/update
  3. 已安装AspectJ Development Tools (Required).
  4. 创建示例android项目
  5. Analytics_onBackPressed.aj后退按钮检测而设计
  6. Analytics_OnClick.aj点击事件检测而创建
  7. Analytics_onCreate.aj组件创建事件检测创建
  8. 在Manifest File中添加了必需的权限
  9. 右键单击项目并通过以下方式将项目转换为AspectJ 将项目转换为AspectJ
  10. 使用AspectJ运行时库配置的Java构建路径
  11. 现在,在运行项目时,我能够检测组件oncreate,后退按钮按下

使用环境

Android Studio:2.1.2

JRE:1.8.0

Windows 7企业版

任何帮助都非常感谢!


编辑:1,从输出,仍然没有正确配置AspectJ

根据这个链接,我从eclipse创建了jar文件,包括*.aj文件和相应的依赖项.AndroidManifest.xml创建jar file和创建时排除jar

在Android Studio中创建项目.将此*.jar文件放在libs文件中.(apps> libs).我启用了AspectJ挥动,如下所示

启用AspectJ挥手

现在搜索AspectJ的属性并启用
在此输入图像描述
现在运行该项目,应该创建我放在*.aj插件中的文件中的日志.不幸的是,这些日志不会在Android Studio日志中打印出来.

我结束的表格仍然是AspectJ在这个项目中没有启用或者存在配置错误

Mat*_*amn 5

披露:我是非官方 AspectJ weaver 插件的作者

正如AspectJ weaver 插件文档中所述,该插件支持编译.aj文件。

要使用此插件,您有两个选择:

  • 从切换.aj注释样式的方面。
  • .aj在IDE(IntelliJ Community / Android Studio)之外编译文件,例如使用Maven/Gradle/Ant,并将它们打包成.jar. 根据文档,将此.jar作为依赖项包含在您的项目中,然后单击Search for aspect...按钮。


小智 2

我在尝试让 AspectJ 在 Android Studio 中工作方面取得了各种成功。这个链接帮助我完成了部分工作(假设你的项目有 Gradle 构建设置)。 http://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/

使用文件中的自定义代码块build.gradle,我能够使用.java文件中的注释来定义方面,并在项目中正确编译和编织。然而,当使用文件定义本机方面时,同样的方法对我不起作用.aj。我希望它有帮助。