我正在尝试遵循有关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已正确下载。 (我没有任何消息错误)。
答案 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"
}
}
}