Closed RexHuang1 closed 1 year ago
@RexHuang1 你好请问使用1.1.0 时,你项目用的AGP和kotlin插件是什么版本
@RexHuang1 你好,请升级你项目的kotlin-plugin到1.4.0以上,1.4.0以上版本才有FuncationReferenceImpl 6个参数的构造方法。
我的项目kotlin插件1.5.21 agp 4.2.2 gradle6.7.1 kotlin插件1.5.21一直是能找到这个6个参数的构造方法的
试了一下,依旧是这个报错
demo早上试过,刚刚也试过,都是这里编译不过去
@RexHuang1 你好,这个问题已修复,请升级1.1.1版本试试。
1.1.1版本现在可以编译成功运行了。
现在的问题就是:
1.1.1版本现在可以编译成功运行了。
现在的问题就是:
- 配置中checkTime按键的时间间隔是不是没有生效,我的时间间隔配置是500,我看了代码和打印sCheckTime还是1000。
- 配置中includes单独文件比如kotlin文件的配置问题(ps.我还没对java文件单独配置过),我对字节码了解不多,也想请教下class字节码的相关学习。
1.修改debounce任何配置都需要Build->clean Project,然后在运行项目。否则新修改的配置不会生效
2.Main activity.kt不生效,是因为设置的点击事件编译后生成的是MainActivity$XXX.class。如果你只想对MainActivity防抖,那么include可以这样写"路径/MainActivity*.class"。
每次都是clean 然后运行, log打印就是1000
每次都是clean 然后运行, log打印就是1000
Run app
交互执行的,如果不确定可以执行 ./gradlew clean ./gradlew assembleDebug 打包后,安装apk到手机上试试。ps:我这边没出现过checkTime修改无效的情况。它的原理是通过配置在transform中修改 BounceChecker#sCheckTime
的值。build文件被移除,按理应该重新transform。根据你反馈的现象像是忽略了transform过程一样(缓存没清除)。
- clean project确实删除了所有build文件夹。然后用Run app重新构建打包运行的。
- 也试过清除AS缓存了。
- 后面我想试下直接下载Demo来运行看看能不能修改。Demo工程是否少了gradle/wrapper文件夹来配置gradle的构建?直接运行不过去
抱歉,Demo工程gradle/wrapper文件确实没上传,现在上传了。
看了下Demo的插件代码,但不太懂插件开发。就跟了下插件的流程。
我的项目屏蔽includes配置后,checkTime生效 Demo项目加入includes配置后,checkTime失效,变成默认值1000L
另外:每次修改了配置之后,clean project都会失败。提示build目录被占用,需要关闭as重新打开项目才能进行clean和run app等操作。
看了下Demo的插件代码,但不太懂插件开发。就跟了下插件的流程。
- 以为是checkTime值因为没加L类型不同,才导致没解析成功。后面发现是checkTime已经解析成功并输出到控制台了。
- 后面对比了我的项目的配置和Demo的配置,发现includes这个配置有问题。Demo中也没有includes配置。
我的项目屏蔽includes配置后,checkTime生效 Demo项目加入includes配置后,checkTime失效,变成默认值1000L
另外:每次修改了配置之后,clean project都会失败。提示build目录被占用,需要关闭as重新打开项目才能进行clean和run app等操作。
感谢提供复现路径,方便加个q嘛,定位下文件被占用问题,632702731。
@RexHuang1 你好 checkTime 设置无效问题已解决。
文件被占用问题经排查这是ide对windows的优化😔,他会缓存一段时间jar。无论使用AGP7.0的TransformAction还是已有的三方成熟框架Booster,都会存在文件无法删除问题。
解决方案目前只能将不保留守护进程(在项目gradle.properties)配置 org.gradle.daemon=false
或者无法删除时执行./gradlew --stop 停止守护进程,这时候进程对jar的持有就释放了😔
或者你这边尝试升级下AS。这是其他人给官方提的关于jar无法删除的Bug:
@RexHuang1 你好 checkTime 设置无效问题已解决。
文件被占用问题经排查这是ide对windows的优化😔,他会缓存一段时间jar。无论使用AGP7.0的TransformAction还是已有的三方成熟框架Booster,都会存在文件无法删除问题。
解决方案目前只能将不保留守护进程(在项目gradle.properties)配置 org.gradle.daemon=false
或者无法删除时执行./gradlew --stop 停止守护进程,这时候进程对jar的持有就释放了😔
或者你这边尝试升级下AS。这是其他人给官方提的关于jar无法删除的Bug:
https://issuetracker.google.com/issues/167701947
这个问题我先关闭了哈。
这个问题我先关闭了哈。