gson 如何修复未解析的引用:小刚?

2cmtqfgy  于 2022-11-06  发布在  其他
关注(0)|答案(3)|浏览(162)

我正在尝试遵循一个关于Android应用程序的教程。我正在使用一个依赖性Fuel(它对com.google.Gson反序列化器有依赖性)。但是IDE没有导入Gson()。
我尝试过指定较低版本的gson。我重新同步了所有项目gradle。我尝试过手动编写import(import 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已正确下载。(我没有任何消息错误)。

slsn1g29

slsn1g291#

在您的Gradle中使用此库:

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

0kjbasz62#

该问题可能与燃油相关:2.2.0
为了绕过它,我手动添加了一个新的依赖项到我的build.gradle,问题就解决了。

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

cczfrluj3#

这可能是由于外部库中的gson版本不同造成的。为了解决这个问题,我在app module 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"
        }
    }
}

相关问题