AWS Cognito SDK на Android, вход в систему происходит сбой с параметром cognitoDevice Null - PullRequest
1 голос
/ 03 мая 2019

Итак, я столкнулся с этой странной проблемой при использовании AWS Cognito SDK на Android, но с Kotlin вместо JAVA.

Я пытаюсь войти в систему, и кажется, что когда он достигает функции успеха AuthenticationHandler, происходит сбой.

 override fun onSuccess(cognitoUserSession: CognitoUserSession, cognitoDevice: CognitoDevice?) {
            // Sign-in was successful, cognitoUserSession will contain tokens for the user

Ошибка, с которой он сталкивается:

EXCEPTION: main
    java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter cognitoDevice

Другими словами, заявляя, что cognitoDevice является нулем? а не должно ли быть? Я работаю сразу с документацией AWS, которая находится в JAVA, и я думаю, что это может быть специфическая ошибка Kotlin. Я уже пытался добавить еще одну забаву onSuccess, которая не использует cognitoDevice в качестве параметра безуспешно.

1 Ответ

0 голосов
/ 03 мая 2019

После нескольких часов работы над этой проблемой решение было слишком простым, и проблема заключалась в том, что код не переводился напрямую с Java на Kotlin.

Поскольку другие люди столкнутся с той же проблемой, если будут следовать учебному пособию на веб-сайте веб-служб Amazon, я решил поделиться этим решением, чтобы его можно было найти в быстром поиске.

Мынужно добавить "?"к CognitoDevices, потому что Kotlin по своей природе избегает нулевых значений, но так как этот код изначально на Java, он принимает нулевое значение.

 override fun onSuccess(cognitoUserSession: CognitoUserSession, cognitoDevice: CognitoDevice?) {
            // Sign-in was successful, cognitoUserSession will contain 
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...