Closed whitescent closed 1 year ago
use kt 1.5.30, mirai目前还未升级到1.6.10
把 kotlinx-serialization-json 版本改成 1.2.2, 把 Kotlin 版本改成 1.5.31
@Him188
explicitNulls
是 1.3.0-RC 才开始有的,我刚刚设置了一下 Kotlin 为 1.5.31,kotlinx-serialization-json 为 1.3.0 好像还是不行
@Nthily 目前插件的类加载方式还有一些问题, 插件与 console 共享类加载器, 导致插件无法使用与 console 使用的不同的版本
可以考虑一下relocation看看
Get Outlook for Androidhttps://aka.ms/AAb9ysg
From: Him188 @.> Sent: Thursday, December 30, 2021 10:36:07 PM To: mamoe/mirai @.> Cc: Subscribed @.***> Subject: Re: [mamoe/mirai] java.lang.NoSuchMethodError: 'void kotlinx.serialization.json.JsonBuilder.setExplicitNulls(boolean)' (Issue #1777)
@Nthilyhttps://github.com/Nthily 目前插件的类加载方式还有一些问题, 插件与 console 共享类加载器, 导致插件无法使用与 console 使用的不同的版本
― Reply to this email directly, view it on GitHubhttps://github.com/mamoe/mirai/issues/1777#issuecomment-1003055996, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE3YYC55UXR6Q7NIW4HMWSLUTRU5PANCNFSM5K7XBCEQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you are subscribed to this thread.Message ID: @.***>
@Karlatemp should close?
问题描述
在编写 mirai plugin 的时候,使用 kotlin serialization 创建了一个带有
explicitNulls
属性的 Json 句柄,IDE 中显示有此方法,但是在插件运行的时候报错复现
因为在请求 api 的时候,api 返回可能会有为 null 的对象
例如: {"group":123456,"uid":3333333,"mengunNum":7} // rolltimestamp 为空
所以在创建 Json 句柄的时候,设置了
explicitNulls = false
,但是只要请求 api 的时候,就会引发 NoSuchMethod 错误,反编译后的 class 也有这个方法,不知道哪里出了问题mirai-core 版本
2.9.0-M1
bot-protocol
ANDROID_PHONE
其他组件版本
No response
系统日志
网络日志
补充信息
build.gradle.kts