[英]Right way to use moshi in Java+kotlin project
目前,我的android项目具有Java和Kotlin的部分代码库。
我们正在对Moshi进行翻新。
我一次又一次地遇到Moshi无法通过的java和kotlin之间的互操作性问题。
我相信我缺少一些东西。
我怀疑moshi和moshi-kotlin的版本中存在一些依赖问题,也许我使用的不是正确的。
以下是我目前具有的依赖关系。
implementation "com.squareup.moshi:moshi:1.8" implementation "com.squareup.moshi:moshi-kotlin:1.8" implementation "com.squareup.retrofit2:converter:moshi:2.6.0" implementation "com.squareup.retrofit2:retrofit:2.6.0"
我以以下方式创建翻新服务。
KotlinJsonAdapterFactory adapterFactory = new KotlinJsonAdapterFactory();
Moshi moshi = new Moshi.Builder().add(adapterFactory).build();
MoshiConverterFactory moshiKotlin = MoshiConverterFactory.create(moshi);
return new Retrofit.Builder()
.baseUrl(baseUrl)
.addCallAdapterFactory(new GranularErrorsCallAdapterFactory())
.addConverterFactory(MoshiConverterFactory.create())
.addConverterFactory(moshiKotlin)
.client(httpClient.build())
.build()
.create(RetroFitService.class);
我的怀疑是:
KotlinJsonAdapterFactory
和MoshiConverterFactory.create()
提供的默认值 您对kotlin
和android
感到困惑,让我清除kotlin
对android的支持,因此您无需同时添加这两个转换器工厂。 有关更多信息,请参阅使用Moshi和Kotlin的高级JSON解析技术 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.