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

时间:2019-08-17 17:03:00

标签: gradle kotlin import gson fuel

我正在尝试遵循有关Android应用程序的教程。我正在使用依赖项Fuel(具有对com.google.Gson反序列化器的依赖项)。但是Gson()不是由IDE导入的。

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

这是我的build.gradle(module:app)中的部分

    // 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)
        }
}

通常,我希望Gson()被IDE识别,并且我可以正常调用.fromJson()。 Gradle已正确下载。 (我没有任何消息错误)。

enter image description here

3 个答案:

答案 0 :(得分:1)

问题可能出在fuel-gson:2.2.0的依赖上

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

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

答案 1 :(得分:1)

在您的gradle中使用此Lib:

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

答案 2 :(得分:0)

这可能是由于外部库中的 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"
        }
    }
}