Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ksp 最新版本 #9

Closed
EdwinSmartBoy opened this issue Sep 1, 2023 · 17 comments
Closed

ksp 最新版本 #9

EdwinSmartBoy opened this issue Sep 1, 2023 · 17 comments

Comments

@EdwinSmartBoy
Copy link

ksp最新版本能用吗

@EdwinSmartBoy EdwinSmartBoy changed the title ksp 最近版本 ksp 最新版本 Sep 1, 2023
@JailedBird
Copy link
Owner

JailedBird commented Sep 1, 2023

项目中实际使用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版本,请更新;

@JailedBird
Copy link
Owner

ksp最新版本能用吗

已更新kotlin1.9.10 & ksp1.9.10-1.0.13 最新版本,详情参见master分支README文件;
image

image

@EdwinSmartBoy
Copy link
Author

非常感谢🙏,明天试试

@EdwinSmartBoy
Copy link
Author

没办法获取到Autowired的参数,需要什么特殊处理吗?我已经按照wiki的加入的

@JailedBird
Copy link
Owner

JailedBird commented Sep 4, 2023

没办法获取到Autowired的参数,需要什么特殊处理吗?我已经按照wiki的加入的

举个例子?或者看下这个? #4
参数传递、接收,和Arouter本身应该是一样的;

@JailedBird JailedBird reopened this Sep 4, 2023
@EdwinSmartBoy
Copy link
Author

类似这种,但是我的数据类型是String,是获取不到的

@JailedBird
Copy link
Owner

请参考项目中示例(临时添加代码,截图展示):
image

image

image

另:是否忘记注入 ARouter.getInstance().inject(this) ?
此外:如还是存在问题,请查看ksp生成文件是否正确?

image

@EdwinSmartBoy
Copy link
Author

辛苦大佬,我排查一下

@JailedBird
Copy link
Owner

我暂时关闭问题了哈,后面有问题可以继续在这反馈;

@EdwinSmartBoy
Copy link
Author

好的

@EdwinSmartBoy
Copy link
Author

排查了一下,确实发现有个问题
如果使用了lateinit var进行标识的属性,就没法获取,提示变量未初始化
去掉lateinit就能够获取到注入的字段
对应的ksp文件也是生成了的

@JailedBird
Copy link
Owner

晚点试试,看看为啥;

@JailedBird
Copy link
Owner

错误原因:getString提前获取lateinit的值,作为默认值;
复现场景:使用lateinit 初始化String,必现;其他类型不会出现问题;

@Autowired
lateinit var lateStr: String

image

解决方案:优化String初始化方式

image

缺陷:
1、 唯一缺陷:不能主动为String传递null值;但是应该不会有人这么用;
优点:
1、 绕开对String判断Java/Kotlin的可空、不可空,因为判断可能会很复杂,且不准;

@JailedBird JailedBird reopened this Sep 12, 2023
@JailedBird
Copy link
Owner

麻烦先用这个验证一下:
最新代码已提交到main分支,先用这个验证下;
com.github.JailedBird:ArouterKspCompiler:main-SNAPSHOT

@EdwinSmartBoy
Copy link
Author

好的,麻烦您了

@JailedBird
Copy link
Owner

lateinit String bug已修复, xxx-1.0.5 已更新,参考README哈;

@EdwinSmartBoy
Copy link
Author

好的,我试了com.github.JailedBird:ArouterKspCompiler:main-SNAPSHOT没啥问题,非常感谢!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants