In Kotlin I'm overriding this two Google Sign-In functions:

override fun onConnectionFailed(result: ConnectionResult) {
        if (result.hasResolution()) {
            try {
                result.startResolutionForResult(this, RESOLVE_CONNECTION_REQUEST_CODE)
            } catch (e: IntentSender.SendIntentException) {
                // Unable 到 resolve, message user appropriately
            }

        } else {
            val gaa = GoogleApiAvailability.getInstance()
            gaa.getErrorDialog(this, result.errorCode, 0)
        }
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
        when (requestCode) {
            RESOLVE_CONNECTION_REQUEST_CODE -> if (resultCode == Activity.RESULT_OK) {
                mGoogleApiClient!!.connect()
            }
        }
    }

到 check if the connection 到 google fails.

The problem is that sometimes, when I dismiss the dialog containing user accounts, which pop-up when the activity is launched

就像这个:

dialog

I'm getting an IllegalArgumentException with the following logcat

E/AndroidRuntime:致命异常:主

这就指向了onActivityResult函数.

我试着改变

requestCode: Int

requestCode: Int?

但是很明显,我得到了一个错误,因为该函数与它的超类中的函数不同.

我该怎么修?

推荐答案

你需要把data称为null,因为当操作被取消或没有结果被发送时,data intent可以是null

传递结果ResultInfo失败{谁=空,请求=6783,结果=0, data=null}到指定为non-null is null的活动参数:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
//                                                                           ^^

Kotlin相关问答推荐

Scala与Kotlin中的迭代

Kotlin stlib中是否有用于将列表<;对<;A,B&>;转换为对<;列表<;A&>,列表<;B&>;的函数

在Kotlin lambda的参数中如何指定函数类型?

创建包含 3 个相同项目的列表/使用返回类型重复

如何在 Spring Boot 3 中为内部类提供运行时提示

gradle 如何 Select 以-jvm结尾的库?

为什么多线程不会使执行更快

为什么 Kotlin 的 null 安全性不能与局部变量初始化器一起正常工作?

如何使用 Kotlin KClass 属性 simpleName 生成空值

Saripaar formvalidation 在 kotlin 中第二次不起作用

IntelliJ 不会根据 ktlint 的期望对 Kotlin 导入进行排序

Kotlin 静态函数:伴生对象,@JvmStatic @JvmField

调用单元测试验证伴随对象方法

Kotlin:如何在活页夹中返回正在运行的服务实例?

API 26 上未显示 Android 通知

如何暂停kotlin coroutine直到收到通知

从片段(fragment)中的点击事件启动协同程序

如何在Kotlin中获得KType?

类型不匹配:推断类型为 LoginActivity 但应为 LifecycleOwner

Kotlin 错误:public function exposes its 'public/*package*/' return type argument