编译缓存无法清除
byteflys opened this issue · 2 comments
byteflys commented
描述一下大概怎么回事
@AndroidAopReplaceMethod
把ReplaceLog换成LogReplaceRule后,执行的仍然是旧代码
卸载了APP,删除了所有build目录重新编译还是不行
插件编译是不是有缓存,而且是存在于机器上,不是项目里面
你的代码
@AndroidAopReplaceClass("android.util.Log")
object LogReplaceRule {
@JvmStatic
@AndroidAopReplaceMethod("int e(java.lang.String,java.lang.String)")
fun e(tag: String, msg: String): Int {
Toast.makeText(Global.application, "$tag $msg", Toast.LENGTH_LONG).show()
return 0
}
}
错误日志
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.code.aop.ReplaceLog" on path
库的版本号:
api("io.github.FlyJingFish.AndroidAop:android-aop-core:2.0.9")
api("io.github.FlyJingFish.AndroidAop:android-aop-annotation:2.0.9")
ksp("io.github.FlyJingFish.AndroidAop:android-aop-ksp:2.0.9")
byteflys commented
删除项目下.gradle目录可以解决
FlyJingFish commented
本库没有这种缓存。出现这个问题的原因在于增量编译,你只改一个类不足以影响整个项目的编译。因此在遇到此类问题时,理论上只要clean下项目重新编译即可