2013-04-07 3 views
2

Я хочу попробовать использовать AspectJ как часть проекта библиотеки андроидов. Я попытался создать проект андроидной библиотеки и использовал стиль, основанный на аннотациях, для создания pointcuts.Использовать AspectJ в проекте библиотеки андроида

Проблема в том, что аспекты проекта библиотеки не сотканы в приложение Android, которое добавило мой проект библиотеки.

В моем проекте библиотеки Android есть несколько аспектов, определенных в нем. Что-то вроде

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

Я добавил этот проект библиотеки в свое приложение для Android. Однако «dosomething» не выполняется. Какие-нибудь советы?

+1

... не предназначено. –

+0

Мой совет: Покажите нам некоторые сведения о коде и конфигурации. В противном случае это похоже на вопрос: «Я хочу приготовить еду. Какие-нибудь советы?» – kriegaex

+0

@kriegaex добавил код. см. сейчас – Deepak

ответ

3

И наконец исправлено это. Я добавил проект библиотеки к своему аспекту, и все стало работать.

+2

Можете ли вы сказать мне, как это сделано? с той же проблемой прямо сейчас –

+0

Я добавил плагин aspectj для затмения, чтобы переплетаться в коде. Сейчас есть намного лучшие способы сделать это. Оформить заказ: https://github.com/uPhyca/gradle-android-aspectj-plugin – Deepak

+0

Я понял это. Это мой ответ http://stackoverflow.com/questions/31142125/aspectj-with-android-library/31225630#31225630 –

0

Как насчет

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

Я не проверял, просто быстро написал его с моим IPad, но, возможно, это помогает. Держите меня в курсе, если это не так.

+0

Это хорошая идея, но это не решит проблему. – Deepak

+0

Да, это будет - если у вас нет проблем в конфигурации Spring или AspectJ, которую вы еще не опубликовали. Работает ли аспектное плетение с ЛЮБОЙ вид pointcut/advice? Код pointcut, который вы опубликовали, определенно неверен! – kriegaex

+0

Почему это не работает ?. Он отлично работает над моим проектом Android. Я вижу, что его сплетение. Но в любом случае вопрос заключается в том, как использовать аспекты, основанные на аннотациях, для сплетения в проекте андроида с использованием обычного java-компилятора. – Deepak

Смежные вопросы