安卓中的Gemini Api:类型序列化名称为

的字段’license’是必需的

我在Android Studio中创建新项目时尝试使用Gemini API Starter模板的代码。

默认模板使用的是很久之前就已废弃的“gemini-pro”模型(他们没有更新模板),所以我将其改成了gemini-1.5-flash。

但我一直遇到解析错误:

com.google.ai.client.generativeai.type.SerializationException: 尝试从服务器反序列化响应时出现问题。2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.type.GoogleGenerativeAIException$Companion.from(Exceptions.kt:39)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.GenerativeModel.generateContent(GenerativeModel.kt:88)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.GenerativeModel$generateContent$1.invokeSuspend(Unknown Source:15)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W  Caused by: io.ktor.serialization.JsonConvertException: 非法输入:类型序列化名称为'com.google.ai.client.generativeai.internal.api.server.CitationSources'的字段'license'是必需的,但在路径$.candidates[0].citationMetadata.citationSources[0]处缺失2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:90)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.ContentConverterKt$deserialize$$inlined$map$1$2.emit(Emitters.kt:224)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.flow.FlowKt__BuildersKt$asFlow$$inlined$unsafeFlow$3.collect(SafeCollector.common.kt:116)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.ContentConverterKt$deserialize$$inlined$map$1.collect(SafeCollector.common.kt:113)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.flow.FlowKt__ReduceKt.firstOrNull(Reduce.kt:243)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.flow.FlowKt.firstOrNull(Unknown Source:1)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.ContentConverterKt.deserialize(ContentConverter.kt:123)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.contentnegotiation.ContentNegotiation.convertResponse$ktor_client_content_negotiation(ContentNegotiation.kt:230)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invokeSuspend(ContentNegotiation.kt:262)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(Unknown Source:13)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(Unknown Source:6)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.HttpClient$4.invokeSuspend(HttpClient.kt:177)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.HttpClient$4.invoke(Unknown Source:11)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.HttpClient$4.invoke(Unknown Source:6)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.proceedWith(SuspendFunctionGun.kt:88)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invokeSuspend(HttpCallValidator.kt:142)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(Unknown Source:13)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(Unknown Source:6)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.client.call.HttpClientCall.bodyNullable(HttpClientCall.kt:88)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.APIController.generateContent(APIController.kt:198)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.APIController$generateContent$1.invokeSuspend(Unknown Source:15)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W      ... 6 more2024-12-03 22:11:32.349  7350-7395  System.err              com.ayusch.genaitest                 W  Caused by: kotlinx.serialization.MissingFieldException: 类型序列化名称为'com.google.ai.client.generativeai.internal.api.server.CitationSources'的字段'license'是必需的,但在路径$.candidates[0].citationMetadata.citationSources[0]处缺失2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:93)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:533)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationMetadata$$serializer.deserialize(Types.kt:59)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationMetadata$$serializer.deserialize(Types.kt:59)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.Candidate$$serializer.deserialize(Types.kt:51)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.Candidate$$serializer.deserialize(Types.kt:51)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableElement(StreamingJsonDecoder.kt:165)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:533)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.CollectionLikeSerializer.readElement(CollectionSerializers.kt:80)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.GenerateContentResponse$$serializer.deserialize(Response.kt:26)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.GenerateContentResponse$$serializer.deserialize(Response.kt:26)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.Json.decodeFromString(Json.kt:107)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:82)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      ... 36 more2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W  Caused by: kotlinx.serialization.MissingFieldException: 类型序列化名称为'com.google.ai.client.generativeai.internal.api.server.CitationSources'的字段'license'是必需的,但缺失2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationSources.<init>(Types.kt:64)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationSources$$serializer.deserialize(Types.kt:64)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at com.google.ai.client.generativeai.internal.api.server.CitationSources$$serializer.deserialize(Types.kt:64)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:70)2024-12-03 22:11:32.350  7350-7395  System.err              com.ayusch.genaitest                 W      ... 72 more

有人遇到过这个问题吗?

我看到一个类似的提问,API没有返回所需的字段,但据说已经修复了(是另一个字段):Gemini Api Android: SerializationException when deserializing response from server

提前感谢


回答:

我将generativeai依赖从0.2.2升级到了0.9.0,现在它可以工作了。你可以试试这个 👍

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注