android - Android上的AWS Cognito SDK,参数cognitoDevice Null导致登录崩溃

标签 android kotlin amazon-cognito

因此,在Android上使用AWS Cognito的SDK时遇到了一个时髦的问题,
但是使用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为null?但这不应该吗?我正在使用JAVA中的AWS文档,我认为这可能是Kotlin特定的错误。我已经尝试过添加另一个onSuccess有趣的功能,该功能不会将cognitoDevice用作没有成功的参数。

最佳答案

经过数小时的研究后,解决方案太简单了,问题在于代码不能很好地从Java直接转换为Kotlin。

如果其他人遵循Amazon Web Services网站上的教程,肯定会遇到相同的问题,所以我决定共享该解决方案,以便快速搜索找到它。

我们需要添加一个“?”之所以将其传递给CognitoDevices是因为Kotlin本质上会避免使用null,但是由于此代码最初是在Java中提供的,因此会传递null。

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

关于android - Android上的AWS Cognito SDK,参数cognitoDevice Null导致登录崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55966396/

相关文章:

android - 如何在互联网可用时存储和发送队列文件

kotlin - 为什么我的 tornadoFX ObservableList 没有收到更新?

node.js - 使用密码导出 AWS Cognito 用户

java - 检查 null 时惯用的 Kotlin

javascript - 从浏览器 JS 向 AWS Cognito 用户池进行身份验证

android - 使用 Amazon SNS 移动推送服务注册移动/Android 端点

android - 设置 edittext 启用/禁用

android - 在 kotlin 中,如何创建个人资料图像并在离线短信应用程序中将联系人姓名的第一个字母显示为个人资料图像?

java - Google map 不会出现在 Android 设备上

java - Webflux-Aop :Get method request(Mono) in Aspect class