如何修复未解决的参考:Gson?

How can I fix Unresolved reference: Gson?

我正在尝试学习有关 Android 应用程序的教程。我正在使用依赖项 Fuel(它依赖于 com.google.Gson 反序列化器)。但是 IDE.

没有导入 Gson()

我尝试指定较低版本的 gson。我已经重新同步了所有项目 gradle。我试过手动编写导入(导入 com.google.gson.Gson),但我不能使用 Gson() 构造函数。我已经阅读了有关使用 Gson 的手册,但似乎没有任何改变。总是一样的。调用构造函数 Gson() 然后调用所有静态方法... Gson().fromJson(....)

这是我的 build.gradle(模块:应用程序)

中的部分
    // Fuel HTTP Client
    implementation 'com.github.kittinunf.fuel:fuel:2.2.0'
    implementation 'com.github.kittinunf.fuel:fuel-android:2.2.0'
    implementation 'com.github.kittinunf.fuel:fuel-gson:2.2.0'

并且在代码中,我在 ArticleDataProvider.kt:

中使用
class WikipediaDataDeserializer : ResponseDeserializable<WikiResults> {

        override fun deserialize(reader: Reader): WikiResults? {
            return Gson().fromJson(reader, WikiResults::class.java)
        }
}

通常,我会让 IDE 识别 Gson() 并且我能够正常调用 .fromJson() 。 Gradle 已正确下载。 (我没有任何消息错误)。

问题可能是依赖于fuel-gson:2.2.0

为了绕过它,我手动向我的 build.gradle 添加了一个新的依赖项,问题就解决了。

dependencies {
    implementation 'com.google.code.gson:gson:2.8.5'
}

在您的 gradle 中使用此库:

dependencies{
  implementation 'com.google.code.gson:gson:2.8.2'
}

这可能是由于外部库中的 gson 版本不同。为了解决它,我在应用程序模块 build.gradle.

中添加了以下 resolveStrategy
configurations.all {
    resolutionStrategy.preferProjectModules()
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.google.code.gson') {
            details.useVersion "2.8.5"
        }
    }
}