wurensen / gradle_plugin_android_aspectjx

A Android gradle plugin that effects AspectJ on Android project and can hook methods in Kotlin, aar and jar file.
Apache License 2.0
363 stars 50 forks source link

[Error] 单独在library中使用, 输出的aar中,没有插入切片代码 #82

Closed deanxd closed 10 months ago

deanxd commented 10 months ago

看介绍中 说可以在library中对当前模块的class文件进行处理, 想知道 是怎么配置实现的?

问:library模块引入插件,无法对第三方依赖库进行织入?

答:library模块引入插件,只能对当前模块的class文件进行处理,无法对依赖库进行处理,只有app模块能对依赖库进行处理。

wurensen commented 10 months ago

@deanxd 你可以看下demo中如何使用的

deanxd commented 10 months ago

当前场景是 aspject相关逻辑写在 libA中, libB依赖libA, 然后输出libB的aar, libA中的逻辑没有插入到libB的aar中。 但是用app 依赖libA,libB, 输出的apk中,libB中的代码有插入aspject逻辑。 当前插件支持这种 aar依赖aar的场景吗?

wurensen commented 10 months ago

看介绍中 说可以在library中对当前模块的class文件进行处理, 想知道 是怎么配置实现的?

问:library模块引入插件,无法对第三方依赖库进行织入?

答:library模块引入插件,只能对当前模块的class文件进行处理,无法对依赖库进行处理,只有app模块能对依赖库进行处理。

@deanxd 不支持,这边已经说明了,lib模块只能针对当前lib,对于依赖库无法处理。

deanxd commented 10 months ago

我的这个场景 并不是对第三方依赖库进行织入, 只是@Aspect注解标注的逻辑类在第三方依赖库中,然后需要使用这个类,对当前的lib进行织入, 这种场景是否支持?

wurensen commented 10 months ago

不支持,对于library module,只能处理当前module。只有app模块可以处理所有依赖。

deanxd commented 10 months ago

好的,谢谢

wurensen commented 10 months ago

主要是gradle对于module的构建过程,没有提供机制去处理其它module和第三方lib。你可以试着想一下它为什么这样设计,如果不这样设计,会带来什么其它问题。