Android API 33 GestureDetecto

2023-03-28  本文已影响0人  善良的老农

错误原因    GestureDetector.OnGestureListener 覆写崩溃问题

它没有说什么时候任何 MotionEvent 参数为 null:

e1 MotionEvent:开始投掷的第一个向下运动事件。

e2 MotionEvent:触发当前onFling的移动动作事件。

我无法重现这一点,但我注意到 Crashlytics(在 Android 11 上的“realme GT Master Edition”上发现)发生崩溃,因为它被转换为 Kotlin 并被认为是不可为空的。崩溃是因为“e1”参数:

致命异常:java.lang.NullPointerException:指定为非空的参数为空:方法 kotlin.jvm.internal.Intrinsics.checkNotNullParameter,参数 e1



解决: 

这是谷歌的一个已知问题

即使 e1 被定义为不可为 null,Android API 仍然会为它生成一个 null 值。

将 compileSDK 版本升级到 33 后,无法成功构建项目('onFling' 不覆盖任何内容)

解决此问题的一种方法是添加  @Suppress("NOTHING_TO_OVERRIDE", "ACCIDENTAL_OVERRIDE")   e1 并将其设置为可为空

overridefunonFling(   e1:MotionEvent?,... )

如前所述,这是一个已知问题,应该在将来修复。

上一篇 下一篇

猜你喜欢

热点阅读