AWS cognito sdk在Android上,登录以参数cognitodevice null崩溃



所以我在使用AWS Cognito的SDK Android上遇到了这个时髦的问题,但是用kotlin而不是java。

我正在尝试登录,并且当它达到身份验证的成功函数时,它崩溃了。

 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中,我认为这可能是一个特定的错误。我已经尝试添加另一个不将CognitodeVice作为参数而没有成功的乐趣。

在我的头上刮擦了数小时后,解决方案太简单了,问题是代码并未直接从Java转换为Kotlin。

由于其他人一定会遇到同一问题,如果他们在Amazon Web服务网站上关注教程,我决定共享解决方案,以便快速搜索可以找到它。

我们需要添加一个"?"到Cognitodevices是因为Kotlin本质上避免了零,但是由于此代码最初是在Java中,因此它通过null中的null。

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

最新更新