【发布时间】:2019-08-29 11:48:31
【问题描述】:
目前,我的 android 项目在 Java 和 Kotlin 中都有部分代码库。
我们正在使用 Moshi 进行改造。
在 java 和 kotlin 之间的互操作性方面,我不断遇到 Moshi 无法解决的奇怪问题。
我相信我错过了什么。
我怀疑 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);
我的疑问是:
- 是否需要同时添加 Moshi 和 Moshi-kotlin?
- 我需要添加2个转换器工厂
KotlinJsonAdapterFactory和MoshiConverterFactory.create()提供的默认值吗 - 还有什么我遗漏的吗?
【问题讨论】: