更新 gradle 插件后,Android Studio 不会在 kotlin 类中显示错误

Posted

技术标签:

【中文标题】更新 gradle 插件后,Android Studio 不会在 kotlin 类中显示错误【英文标题】:Android studio doest not show error in kotlin class after update gradle plugin 【发布时间】:2021-04-28 13:00:51 【问题描述】:

我在 android 4.1.2 工作室工作。我更新了 Gradle 插件

-        classpath 'com.android.tools.build:gradle:3.5.3'
+        classpath 'com.android.tools.build:gradle:4.1.2'

-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip

之后,我尝试构建 apk,但由于 kotlin 类中的错误导致构建失败,例如:“'handleMessage' overrides nothing” for Handler class, ”对于intent.getParcelableExtra,只允许在类型为空的接收器上调用安全(?.)或非空断言(!!.)。 Android Studio 本身并没有在 kotlin 类中向我显示此类错误。你能告诉我这与什么有关以及如何在 android studio 中启用错误显示

我已尝试重建、清理、无效和重新启动。

【问题讨论】:

【参考方案1】:

点击“Handler”打开反编译的Handler.class,在里面搜索“handleMessage”,新定义如下:

public void handleMessage(@NonNull Message msg) 
    throw new RuntimeException("Stub!");

所以参数 msg 已更改为 @NonNull。 因此,为了解决这个问题,原来的 override 语句

override fun handleMessage(message: Message?)

应更新以删除 ?匹配函数定义。

override fun handleMessage(message: Message)

【讨论】:

以上是关于更新 gradle 插件后,Android Studio 不会在 kotlin 类中显示错误的主要内容,如果未能解决你的问题,请参考以下文章

更新Google服务插件并且无法安装应用程序成功完成gradle后

更新gradle后Android单元测试无法解析被测类

2020 Android 大厂面试(之)插件化模块化组件化热修复增量更新Gradle

Android Gradle 插件Gradle 参考文档收集 ( 持续更新 ) ★★

Android Studio 更新gradle插件失败的解决办法

迁移到 Android Gradle Plugin 3.0 | 中文教学视频