Closed AndyGu closed 2 years ago
Caused by: org.gradle.api.GradleException: bad parameter to pointcut reference
at com.hujiang.gradle.plugin.android.aspectjx.internal.AJXTask.call(AJXTask.kt:104)
@AndyGu 进行织入处理的时候出错的,请检查你织入规则类的写法是否有问题。
@Aroud
注解编写代码并测试成功,但依旧不知道如何像之前AspectJ那样获取到注解/注解标注的方法,以下的写法总是会报错,能否给予些帮助,感谢
@Pointcut("execute(@xxx.xxx.Permission * *(..)) && @annotation(permissions)")
@AndyGu 1.织入规则错误导致后续无法成功的问题,我验证下是不是有这样的问题。你那边也排查下有没有引入其他插件,因为有些插件如果有内存缓存(单例等全局持有)没有做好清理工作,是有可能导致失败后一直构建失败,只能关掉gradle deamon。 2.织入规则这块,你去查下aspectj的相关文档或者一些使用文章,因为这个插件最终也是使用aspectjtools.jar来进行织入处理。
@wurensen 我目前测试的结果是,我项目中有自定义的注解处理器,则需要在build.gradle的aspect标签中加入
include 'com.bard.test.MainActivity' //使用到注解的类
include 'com.bard.test.permissions' //注解的处理类所在包
即使这样,还是需要每次将自定义处理器生成在build目录下的文件删掉,重新运行后一切正常;
如果不加这两句include
,则会在一个类中多个方法使用注解的情况下,在运行期报错
因为在刚才的条件下运行正常,所以不知道是不是和我写的织入规则有关
@Pointcut("execution(@com.bard.test.permissions.annotation.PermissionNeed * *(..)) && @annotation(permissionNeed)")
public void pointActionMethod(PermissionNeed permissionNeed){
}
@Around("pointActionMethod(permissionNeed)")
public void getPermissionPoint(final ProceedingJoinPoint point, final PermissionNeed permissionNeed) throws Throwable{
}
@AndyGu 最新版本3.2.0已发布,如果有发生织入错误,日志会输出到module/build/tmp/transformClassesWithAjxForDebug/logs
下面。
请提供构建环境相关信息:
build没报错,运行时报错,关闭aspectjx后运行正常,以下是错误日志。
注:
build/outputs/logs
目录下没有ajcore
前缀的日志文件