当前位置: 首页 > 知识库问答 >
问题:

静态编程语言-覆盖方法中的IllegalArgumentException

司寇昱
2023-03-14

在Kotlin中,我覆盖了这两个Google登录html" target="_blank">功能:

override fun onConnectionFailed(result: ConnectionResult) {
        if (result.hasResolution()) {
            try {
                result.startResolutionForResult(this, RESOLVE_CONNECTION_REQUEST_CODE)
            } catch (e: IntentSender.SendIntentException) {
                // Unable to 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()
            }
        }
    }

检查与谷歌的连接是否失败。

问题是,有时当我关闭包含用户帐户的对话框时,该对话框会在活动启动时弹出

像这样:

我得到了一个带有以下logcat的<code>IllegalArgumentException</code>

E/AndroidRuntime:致命异常:主进程:com.dancam.subscriptions,PID:6346 Java . lang . runtime异常:将结果ResultInfo{who=null,request=6783,result=0,data=null}传递到活动{ com . dancam . Subscriptions/com . dancam . Subscriptions . Subscriptions . Subscriptions _ main }:Java . lang . illegalargumentexception:指定为非null的参数为null:方法kot Lin . JVM . internal . intrinsic . checkparametersnotnull,参数

它指向onActivityResult函数。

我试着改变

requestCode: Int

requestCode: Int?

但是很明显我得到了一个错误,因为这个函数和它的超类中的不一样。

我该怎么修理它?

共有1个答案

姬衡
2023-03-14

您需要将data作为null提及, ,因为当取消操作或未发送结果时, 数据intent可以为 null

无法将结果ResultInfo{who=null, Request=6783,结果=0,data=null}传递给活动指定为non-null的参数为null

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
//                                                                           ^^
 类似资料:
  • 我是Kotlin开发的新手,我不知道如何处理这个问题。我将以下Kotlin数据类映射到MongoDB集合(Spring data MongoDB): 我想覆盖默认的 id 获取器并返回一个字符串而不是对象 Id。似乎“id”字段名称无法更改,因为我收到消息“不允许自定义id属性的字段名称!自定义名称不会被考虑!“,因此我无法使用始终建议的_id解决方案。 如何才能做到这一点?我错过了什么吗?

  • 我正在尝试用Java编写下面用Kotlin编写的代码。我无法创建DefaultElementsAdapter,因为我无法获得正确的语法。 我无法获得正确的Java代码 Kotlin班是这样的 我正在尝试使用图书馆https://github.com/m7mdra/HtmlRecycler

  • 问题内容: Java不允许覆盖静态方法,但是, 在这里没有覆盖吗? 问题答案: 这是“隐藏”,而不是“覆盖”。要看到这一点,请将方法更改为以下内容: 这应该打印: 如果正在进行真正的覆盖,那么您会看到: 通常认为使用实例类型来调用静态方法是一种不好的方式,就像您正在做的那样,因为很容易想到您正在调用实例方法,并且容易误以为重写正在发生。Java样式检查器/代码审核工具通常会将其标记为样式错误/潜在

  • 我刚刚开始使用抽象类,重写val和singeltons。但是,我刚刚遇到了一个非常奇怪的行为。我的目标是拥有一个抽象类,然后创建几个扩展该抽象类的singeltons。因为我需要某些变量,所以我创建了抽象val,然后可以在子类中覆盖它(而不是通过构造函数传递它们)。 所以我上了4节课: 主要活动: 实例: 对象 AClass: 输出: 在此之后,我意识到被覆盖可能直到执行 之后才会初始化。但后来我

  • 我有一个用Kotlin编写的Android服务,我用Guice注入它。它有不能为null的lateinit字段,但它们必须是lateinit,因为我不能使用构造函数注入。 这些线条周围的内容: 现在,当我创建 JaCoCo 报告时,访问任何延迟字段的所有行都标记为部分覆盖。我认为 Kotlin 编译器对字节码进行了一些检查,以确保字段在被访问之前被初始化。 有什么方法可以禁用这些检查吗?我想要10

  • 我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?