gpt4 book ai didi

android - 如何在 Android Studio 中配置 AspectJ

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:18 26 4
gpt4 key购买 nike

我正在尝试在 Android Studio 中配置 AspectJ
但经过反复试验,它还是行不通!令人惊讶的是,我能够让它与 Eclipse Kepler 版本一起工作

我为 Android Studio 遵循的步骤

  1. 创建示例 Android 项目
  2. 文件 > 设置 > 在插件部分搜索 AspectJ Plugin for 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. oncreate 事件检测组件创建了 Analytics_onCreate.aj
  8. 创建了上面提到的*.aj类将在内部调用的必要依赖类
  9. 在 list 中添加所需的权限
  10. 运行项目未检测到任何事件(按钮点击、oncreate 或后退按钮点击)
  11. 点击了这些链接 ReferenceLinkOne , ReferenceLinkTwoReferenceLinkThree

My Question is what is more required to make AspectJ working with Android Studio


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

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

使用的环境

Android Studio : 2.1.2

JRE : 1.8.0

Windows 7 Enterprise

非常感谢任何帮助!


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

根据 this link ,我从 eclipse 创建了 jar 文件,包括 *.aj 文件和相应的依赖项。在创建 jar 文件 和创建 jar

时排除了 AndroidManifest.xml

在 Android Studio 中创建项目。将此 *.jar 文件放在 libs 文件中。 (应用程序>库)。我已启用 AspectJ 挥手,如下所示

Enabled AspectJ waving

现在搜索 AspectJ 的属性并启用
enter image description here
现在运行该项目,应该创建我放在 *.aj 文件中的日志,该文件位于 plugin 中。不幸的是,这些日志不会打印在 Android Studio 日志中。

我得出结论的表单在这个项目中仍然没有启用 AspectJ 或者存在配置错误

最佳答案

披露:我是 inofficial AspectJ weaver plugin 的作者.

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

要使用这个插件,你有两个选择:

  • .aj 切换到 annotation style方面。
  • 在 IDE(IntelliJ 社区/Android Studio)外部编译 .aj 文件,例如使用 Maven/Gradle/Ant,并将它们打包成 .jar。根据文档,将此 .jar 作为依赖项包含在您的项目中,然后单击 Search for aspects... 按钮。

关于android - 如何在 Android Studio 中配置 AspectJ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38301770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com