vk-android-sdk
vk-android-sdk copied to clipboard
`JsonSyntaxException` при вызове `GroupsService().groupsGetMembers()` без дополнительных полей
Если вызывать VK.executeSync()
с параметром GroupsService().groupsGetMembers()
, не передавая в него дополнительные поля в параметре fields
, то запрос падает с ошибкой
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NUMBER at path $.items[0]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
at com.google.gson.Gson.fromJson(Gson.java:932)
at com.google.gson.Gson.fromJson(Gson.java:1003)
at com.google.gson.Gson.fromJson(Gson.java:975)
at com.vk.sdk.api.groups.GroupsService.groupsGetMembers$lambda-190(GroupsService.kt:1018)
at com.vk.sdk.api.groups.GroupsService.$r8$lambda$LD78j1c4qXoqniFsT21ZTxs1Jqw(Unknown Source:0)
at com.vk.sdk.api.groups.GroupsService$$ExternalSyntheticLambda14.parseResponse(Unknown Source:0)
at com.vk.sdk.api.NewApiRequest.parseResponse(Unknown Source:8)
at com.vk.sdk.api.NewApiRequest.parse(NewApiRequest.kt:48)
at com.vk.api.sdk.chain.MethodChainCall.parseResult(MethodChainCall.kt:91)
at com.vk.api.sdk.chain.MethodChainCall.runRequest(MethodChainCall.kt:75)
at com.vk.api.sdk.chain.MethodChainCall.call(MethodChainCall.kt:71)
at com.vk.api.sdk.chain.ValidationHandlerChainCall.call(ValidationHandlerChainCall.kt:44)
at com.vk.api.sdk.chain.ApiMethodPriorityChainCall.call(ApiMethodPriorityChainCall.kt:28)
at com.vk.api.sdk.chain.InvalidCredentialsObserverChainCall.callWithAuthCheck(InvalidCredentialsObserverChainCall.kt:41)
at com.vk.api.sdk.chain.InvalidCredentialsObserverChainCall.call(InvalidCredentialsObserverChainCall.kt:37)
at com.vk.api.sdk.chain.TooManyRequestRetryChainCall.call(TooManyRequestRetryChainCall.kt:46)
at com.vk.api.sdk.chain.RateLimitReachedChainCall.call(RateLimitReachedChainCall.kt:37)
at com.vk.api.sdk.chain.InternalErrorRetryChainCall.call(InternalErrorRetryChainCall.kt:47)
at com.vk.api.sdk.VKApiManager.executeWithExceptionAdjust(VKApiManager.kt:144)
at com.vk.api.sdk.VKApiManager.execute(VKApiManager.kt:95)
at com.vk.api.sdk.requests.VKRequest.onExecute(VKRequest.kt:94)
at com.vk.api.sdk.internal.ApiCommand.execute(ApiCommand.kt:46)
at com.vk.api.sdk.VK.executeSync(VK.kt:215)
at ...
Если же запросить хотя бы одно дополнительное поле, то такого не происходит. Также это не происходит, если в ответе на запрос нет элементов, то есть в сообществе нет участников.
Вероятно, это вызвано тем, что без запроса дополнительных полей groups.getMembers
возвращает лишь список идентификаторов пользователей в виде чисел, а не объекты пользователей, которые ожидаются в vk-android-sdk.
Использую версию 3.5.2
.