You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android API 33下重写GestureDetector.OnGestureListener致Kotlin应用崩溃

解决API 33升级后GestureDetector onScroll空指针崩溃问题

问题根源

Android API 33对GestureDetector.OnGestureListener的onScroll方法签名做了变更:原API 32中被标记为可空的e1、e2参数(对应Java的@Nullable注解),在API 33中改为非空(@NonNull)。但系统部分场景下仍可能传入null值,Kotlin的非空类型检查会直接触发空指针异常。

修复方案

重写onScroll时,显式将参数声明为可空类型,添加注解抑制签名不匹配警告,并在方法内部做空值校验:

@Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS")
override fun onScroll(
    e1: MotionEvent?,
    e2: MotionEvent?,
    distanceX: Float,
    distanceY: Float
): Boolean {
    // 优先做空值校验,避免崩溃
    if (e1 == null || e2 == null) {
        return false
    }
    
    // 这里编写你的滚动逻辑
    return false
}

补充说明

  • @Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS")用于消除Kotlin因Java注解变更导致的签名不匹配警告,不影响代码运行逻辑。
  • 空值判断需放在方法最开头,确保后续业务逻辑不会接触到null对象。
  • 若你的业务逻辑不需要依赖e1、e2参数,也可以直接返回false,省略额外判断步骤。

内容的提问来源于stack exchange,提问作者Marco Nicolas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:05:28