我正在尝试在Android Studio中配置AspectJ。
但是经过多次尝试后,它仍然无法正常工作!令人惊讶的是,我能够在Eclipse Kepler版本中使其正常工作。
我在Android Studio中遵循的步骤
- 创建了一个样例
Android
项目 - 在文件 > 设置中搜索
AspectJ
,位于插件部分 - 假设在 Studio 中除了配置 build.gradle 文件之外不需要进行其他操作
- 将
compile 'org.aspectj:aspectjrt:1.8.1'
添加到 build.gradle (Module:app) 中 - 为返回按钮按下检测创建
Analytics_onBackPressed.aj
- 为点击事件检测创建
Analytics_OnClick.aj
- 为组件创建事件检测创建
Analytics_onCreate.aj
- 创建必要的依赖类,上述
*.aj
类将在内部调用这些类 - 在清单文件中添加所需权限
- 运行该项目未检测到任何事件(按钮点击、oncreate 或返回按钮点击)
- 按照以下链接 ReferenceLinkOne , ReferenceLinkTwo 和 ReferenceLinkThree 进行操作
我的问题是,为了让AspectJ在Android Studio中工作,还需要什么?
在Eclipse中遵循的步骤,并使AspectJ正常工作
- 下载了
Eclipse
Kepler 版本 - 通过安装新软件选项搜索 http://download.eclipse.org/tools/ajdt/43/update
- 安装了
AspectJ Development Tools (Required)
. - 创建了示例 Android 项目
- 为 后退按钮按下检测 创建了
Analytics_onBackPressed.aj
- 为 点击事件检测 创建了
Analytics_OnClick.aj
- 为 组件 oncreate 事件检测 创建了
Analytics_onCreate.aj
- 在清单文件中添加所需权限
- 右键单击项目并通过以下方式将项目转换为 AspectJ
- 使用 AspectJ 运行时库配置 Java 构建路径
- 现在运行项目时,我能够检测到组件的 oncreate 和后退按钮按下事件
使用的环境
Android Studio : 2.1.2
JRE : 1.8.0
Windows 7 Enterprise
非常感谢您的帮助!
编辑:1,从输出来看,AspectJ仍未正确配置
根据此链接,我从Eclipse中创建了包括*.aj
文件和相应依赖项的jar文件。在创建jar文件
时排除了AndroidManifest.xml
并创建了jar
。
在Android Studio中创建项目。将此*.jar文件放置在libs文件夹中。(apps> libs)
。我已启用如下所示的AspectJ waving
现在搜索AspectJ的属性并启用
现在运行该项目,应该会创建我在插件中放置的*.aj
文件中的日志,但不幸的是这些日志未打印在Android Studio日志中。
我得出的结论是,这个项目中仍未启用AspectJ,或存在配置错误。