Closed EdwinSmartBoy closed 1 year ago
项目中实际使用ksp插件为1.8.20(举个例子:id 'com.google.devtools.ksp' version '1.8.20-1.0.10' apply false) 使用的ArouterkspCompiler插件为1.7.20(举个例子:ArouterKspCompiler 1.7.20-1.0.4); 实际运行:他们应该是兼容的,但是我看每次ksp更新都修复不少bug,因此我才打了很多的版本,确保大家可以使用最新、最稳的ksp版本;
关于你的问题,我已经打了(kotlin1.9.10 & ksp1.9.10-1.0.13)的ArouterKspCompiler版本,请更新;
ksp最新版本能用吗
已更新kotlin1.9.10 & ksp1.9.10-1.0.13 最新版本,详情参见master分支README文件;
非常感谢🙏,明天试试
没办法获取到Autowired的参数,需要什么特殊处理吗?我已经按照wiki的加入的
没办法获取到Autowired的参数,需要什么特殊处理吗?我已经按照wiki的加入的
举个例子?或者看下这个? https://github.com/JailedBird/ArouterKspCompiler/issues/4 参数传递、接收,和Arouter本身应该是一样的;
类似这种,但是我的数据类型是String,是获取不到的
请参考项目中示例(临时添加代码,截图展示):
另:是否忘记注入 ARouter.getInstance().inject(this) ? 此外:如还是存在问题,请查看ksp生成文件是否正确?
辛苦大佬,我排查一下
我暂时关闭问题了哈,后面有问题可以继续在这反馈;
好的
排查了一下,确实发现有个问题 如果使用了lateinit var进行标识的属性,就没法获取,提示变量未初始化 去掉lateinit就能够获取到注入的字段 对应的ksp文件也是生成了的
晚点试试,看看为啥;
错误原因:getString提前获取lateinit的值,作为默认值; 复现场景:使用lateinit 初始化String,必现;其他类型不会出现问题;
@Autowired
lateinit var lateStr: String
解决方案:优化String初始化方式
缺陷: 1、 唯一缺陷:不能主动为String传递null值;但是应该不会有人这么用; 优点: 1、 绕开对String判断Java/Kotlin的可空、不可空,因为判断可能会很复杂,且不准;
麻烦先用这个验证一下: 最新代码已提交到main分支,先用这个验证下; com.github.JailedBird:ArouterKspCompiler:main-SNAPSHOT
好的,麻烦您了
lateinit String bug已修复, xxx-1.0.5 已更新,参考README哈;
好的,我试了com.github.JailedBird:ArouterKspCompiler:main-SNAPSHOT没啥问题,非常感谢!!
ksp最新版本能用吗