Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android Studio中配置AspectJ_Android_Android Studio_Aspectj_Aspectj Maven Plugin - Fatal编程技术网

如何在Android Studio中配置AspectJ

如何在Android Studio中配置AspectJ,android,android-studio,aspectj,aspectj-maven-plugin,Android,Android Studio,Aspectj,Aspectj Maven Plugin,我正在尝试在Android Studio中配置AspectJ设置>在插件部分搜索AspectJ 假设在Studio中除了配置build.gradle文件之外,没有其他事情要做 将编译'org.aspectj:aspectjrt:1.8.1'添加到build.gradle(模块:app)的 为后退按钮检测创建了Analytics\u onBackPressed.aj 为点击事件检测创建分析\u OnClick.aj 在创建事件检测时为组件创建分析.aj 创建了必要的依赖类,上面提到的*.aj类将在

我正在尝试在Android Studio中配置AspectJ<但是经过反复试验,它还是不起作用!令人惊讶的是,我能够使用Eclipse开普勒版本

我为Android Studio遵循的步骤

  • 创建示例
    Android
    项目
  • 文件>设置>在插件部分搜索
    AspectJ
  • 假设在Studio中除了配置build.gradle文件之外,没有其他事情要做
  • 将编译'org.aspectj:aspectjrt:1.8.1'添加到build.gradle(模块:app)的
  • 后退按钮检测创建了
    Analytics\u onBackPressed.aj
  • 点击事件检测创建
    分析\u OnClick.aj
  • 在创建事件检测时为组件创建分析.aj
  • 创建了必要的依赖类,上面提到的
    *.aj
    类将在内部调用这些依赖类
  • 在清单中添加了所需的权限
  • 运行项目未检测到任何事件(按钮单击、oncreate或后退按钮单击)
  • 跟踪这些链接,然后
  • 我的问题是,要让AspectJ与Android Studio协同工作,还需要什么


    在Eclipse中遵循了一些步骤并使AspectJ正常工作

  • 下载的
    Eclipse
    Kepler版本
  • 通过搜索的“安装新软件”选项
  • 已安装
    AspectJ开发工具(必需)
  • 创建了示例android项目
  • 后退按钮检测创建了
    Analytics\u onBackPressed.aj
  • 点击事件检测创建
    分析\u OnClick.aj
  • 在创建事件检测时为组件创建分析.aj
  • 在清单文件中添加了所需的权限
  • 在project中单击鼠标右键,并通过以下命令将project转换为AspectJ
  • 使用AspectJ运行库配置Java生成路径
  • 现在,在运行该项目时,我能够在创建、返回按钮按下时检测组件
  • 使用的环境

    安卓工作室:2.1.2

    JRE:1.8.0

    Windows7企业版

    非常感谢您的帮助


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

    根据,我从eclipse创建了jar文件,包括
    *.aj
    文件和相应的依赖项。在创建
    jar文件时排除了
    AndroidManifest.xml
    ,并创建了
    jar

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



    现在搜索AspectJ的属性并启用

    现在正在运行这个项目,应该在插件中创建我放入
    *.aj
    文件中的日志。不幸的是,这些日志没有打印在Android Studio日志中


    我的结论是,AspectJ在这个项目中没有启用,或者出现了配置错误

    我尝试在Android Studio中使用AspectJ取得了各种成功。这个链接帮助我了解了其中的一部分(假设您的项目的Gradle构建设置)


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

    IntelliJ对AspectJ没有工具支持,注释风格的AspectJ可以在Android studio上工作。只需将方面代码视为Java代码即可

    有关详细信息,请阅读本期


    此外,您还可以使用gradle插件,该插件可以编织kotlin代码和

    披露:我是本书的作者

    如中所述,插件不支持编译
    .aj
    文件

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

    • .aj
      切换到方面
    • 在IDE(IntelliJ社区/Android Studio)之外编译
      .aj
      文件,例如使用Maven/Gradle/Ant,并将它们打包到
      .jar
      中。将此
      .jar
      作为依赖项包含在项目中,然后单击搜索特性。。。按钮,如文档所示

    把它擦掉。我犯了一个愚蠢的错误,使我的原生
    .aj
    文件无法正确编译。在AndroidStudio中没有对AspectJ的正式支持是不利的:没有编译错误。我现在能够使用该链接中概述的方法使原生
    .aj
    文件正常工作。这里讨论的是一个库方面的代码和android应用程序代码。哪个是这个图书馆。我们需要创建它吗?DebugTrace.java、StopWatch.java、DebugLog.java和tracespect.java将去哪里?我完全糊涂了对不起,这是不对的。已通过捆绑Jetbrains插件。我是作者,它是在Jetbrains添加AspectJ支持之前创建的。它不再维护,但可能仍然适用于基于IntelliJ的产品的非最终版本,如IntelliJ社区和Android Studio。我曾尝试在Eclipse中配置带有*.aj文件和依赖项的插件,并生成了*.jar文件。现在,Android Studio的输出与预期不符。已将输出包含在我的编辑中。有什么线索告诉我哪里出了问题吗?仅仅因为“它不起作用”就很难帮助我。请包括IntelliJs编译器的输出(在重建项目时)和/或intellij.log以获得进一步帮助。