【问题标题】:Difficulty using Moshi's Kotlin codegen使用 Moshi 的 Kotlin 代码生成的困难
【发布时间】:2023-03-30 07:38:02
【问题描述】:

我正在尝试使用 Moshi 的 Kotlin 代码生成来获得 Kotlin 中的注释支持。尽管仔细遵循了moshi codegen documentation 中的说明,但@JsonClass(generateAdapter = true) 中的注释JsonClass 无法识别,我收到以下错误:

error: incompatible types: NonExistentClass cannot be converted to Annotation@error.NonExistentClass()

我的appbuild.gradle文件如下:

...
apply plugin: 'kotlin-kapt'

android {
    ...
}

dependencies {
    ...
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.squareup.retrofit2:converter-moshi:2.5.0'

    kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.8.0'
}

@JsonClass 注释在我添加时被识别

implementation("com.squareup.moshi:moshi-kotlin:1.8.0").

但是,moshi reflection documentation 表示仅在使用反射而不是 codegen 时才需要此依赖项。

知道我错过了什么吗?谢谢!

【问题讨论】:

    标签: android kotlin retrofit2 moshi


    【解决方案1】:

    @JsonClass 是标准 Moshi 工件中的一个类型。 Retrofit 的 converter-moshi 神器可传递地引入 Moshi,但没有最新版本的 Moshi。 指定implementation("com.squareup.moshi:moshi:1.8.0")

    【讨论】:

    • 最近遇到这个问题,也适用于1.12.0
    猜你喜欢
    • 2020-02-18
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多