12

我正在尝试在 Android Studio 中配置 AspectJ
但毕竟反复试验它不起作用!令人惊讶的是,我能够使其与 Eclipse Kepler 版本一起

使用我为 Android Studio 遵循的步骤

  1. 创建示例Android项目
  2. 文件 > 设置 >AspectJ在插件部分中搜索AspectJ 插件
  3. 假设除了 build.gradle 文件的配置之外,在 Studio 中没有更多的事情要做
  4. 添加compile 'org.aspectj:aspectjrt:1.8.1'到 build.gradle (Module:app)
  5. Analytics_onBackPressed.aj后退按钮按下检测而创建
  6. Analytics_OnClick.aj点击事件检测而创建
  7. Created Analytics_onCreate.ajfor components oncreate 事件检测
  8. 创建了上述*.aj类将在内部调用的必要依赖类
  9. 在清单中添加了所需的权限
  10. 运行项目未检测到任何事件(按钮单击、oncreate 或后退按钮单击)
  11. 按照这些链接ReferenceLinkOneReferenceLinkTwoReferenceLinkThree

我的问题是使 AspectJ 与 Android Studio 一起工作还需要什么


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

  1. 下载Eclipse开普勒版本
  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. Created Analytics_onCreate.ajfor components oncreate 事件检测
  8. 在清单文件中添加了所需的权限
  9. 右键单击项目并通过以下方式将项目转换为 AspectJ 将项目转换为 AspectJ
  10. 使用 AspectJ 运行时库配置的 Java 构建路径
  11. 现在在运行项目时,我能够检测到组件 oncreate,后退按钮按下

使用环境

安卓工作室: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 的属性并启用 了现在运行项目,应该创建我放在plugin 中的文件中的日志。不幸的是,这些日志不会打印在 Android Studio 日志中。

启用 AspectJ 挥动


在此处输入图像描述
*.aj

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

4

3 回答 3

5

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

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

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

  • 切换.aj注释样式方面。
  • 在 IDE(IntelliJ 社区/Android Studio)外部编译.aj文件,例如使用 Maven/Gradle/Ant,并将它们打包成.jar. 根据文档,将此.jar作为依赖项包含在您的项目中,然后单击Search for aspect...按钮。
于 2016-07-14T07:42:58.433 回答
2

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

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

于 2016-07-11T18:57:29.463 回答
0

IntelliJ 没有对 AspectJ 的工具支持,并且 Annotation Style AspectJ 可以在 Android Studio 上运行。只需将方面代码视为 Java 代码。

有关详细信息,请阅读此问题 aspectj for Android studio - AJDT 插件在哪里

此外,您可以使用可以编织 kotlin 代码的 gradle 插件aspectjxdemo 在这里

于 2016-07-14T02:30:09.683 回答