aspectj与android,方面永远不会被调用

时间:2015-07-27 08:57:06

标签: android android-studio aspectj

在我正在工作的项目中,我们最近增加了一定程度的安全性,现在我不想重写整个nework逻辑,如果使用AOP可以更轻松地完成

所以,我试图拦截" onRequestSuccess"整个应用程序中使用的requestListeners的方法。 为此我做了一个简单的方面:

<div>

   <div id = "f"/>
   <div id = "e"/>
   <div id = "d"/>
   <div id = "c"/>
   <div id = "b"/>
   <div id = "a"/>

</div>

}

我已添加了aspectj weaver依赖项:compile&#39; org.aspectj:aspectjweaver:1.8.6&#39;

它似乎有效,至少注释是由android studio识别的。

我在&#34; joinpoint.proceed()&#34;上放置了一个断点。在调试模式下调用并启动应用程序。 但是当我登录时(触发一个这样的监听器的动作)没有任何反应。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

在Maven中你会使用AspectJ Maven插件(当前版本是1.7),在Gradle中有类似的东西。如果要使用CTW(编译时编织),这就是编译所需的。这些插件应该已经包含对 aspectjtools.jar 的依赖,其中包含AspectJ编译器和其他东西。如果使用CTW,则需要 aspectjrt.jar (AspectJ运行时)作为默认范围(编译)或依赖项,因为在运行时也需要它。

但是,如果要使用加载时编织(LTW),则需要通过-javaagent:...在JVM命令行上使用 aspectjweaver.jar ,因为编织代理需要挂钩到类在加载第一个应用程序类之前加载。 P.S。:编织代理还包含AspectJ运行时类,因此在这种情况下您不需要对运行时的额外依赖。