2013-04-07 35 views
2

我想尝试使用AspectJ作为android库项目的一部分。我尝试创建一个android库项目并使用基于注解的样式来创建切入点。在android库项目中使用AspectJ

问题是库项目的各个方面没有被编织到添加了我的库项目的android应用程序中。

我的Android库项目中定义了几个方面。类似于

@AfterReturning(pointcut = "execution(* *.*(..)) && !this(com.xyz.aspects.xyz)") 
public void abc(JoinPoint jp) 
{ 
    dosomething; 
} 

我已将此库项目添加到我的Android应用程序。然而'dosomething'没有被执行。任何建议?

+1

......没有双关意图。 – 2013-04-07 16:27:37

+0

我的建议是:向我们展示一些代码和配置细节。否则,就像问:“我想要做饭,有什么建议?” – kriegaex 2013-04-08 10:32:52

+0

@ kriegaex添加了一些代码。现在看到 – Deepak 2013-04-08 11:23:53

回答

3

最后解决了这个问题。我将库项目添加到了我的纵横路径,并开始发挥作用。

+2

你能告诉我怎么做?现在有相同的问题 – 2015-07-02 00:23:27

+0

我已经添加了Eclipse的aspectj插件来编写代码。现在有更好的方法来做到这一点。结帐:https://github.com/uPhyca/gradle-android-aspectj-plugin – Deepak 2016-03-04 12:11:35

+0

我想通了。这是我的答案http://stackoverflow.com/questions/31142125/aspectj-with-android-library/31225630#31225630 – 2016-03-04 14:42:44

0

如何

execution(* *(..)) && !within(com.xyz.aspects.xyz..*) 

我没有测试过,就迅速用我的iPad编写的,但也许它帮助。如果没有,请让我更新。

+0

这是一个好主意,但这不会解决问题。 – Deepak 2013-04-10 06:57:58

+0

是的,它会 - 除非你的Spring或AspectJ配置有问题,但你还没有发布。方面编织是否可以使用任何切入点/建议?你发布的切入点代码肯定是错误的! – kriegaex 2013-04-10 09:46:19

+0

为什么不能工作?它完美的工作在我的android项目上。我可以看到它的编织。但无论如何,问题是我如何使用基于注释的方面通过使用普通的java编译器编织成一个android项目 – Deepak 2013-04-16 14:46:09