android-studio - 更新 gradle 插件后,Android Studio 不会在 kotlin 类中显示错误
问题描述
我在 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 类中的错误,构建失败,例如:对于 Handler 类, “ 'handleMessage' overrides nothing ”,以及“仅安全 (?.) 或非 null 断言 (! !.)对intent.getParcelableExtra 类型的可为空的接收器允许调用。Android Studio 本身并没有在 kotlin 类中向我显示此类错误。你能告诉我这与什么有关以及如何在 android studio 中启用错误显示
我尝试过重建、清理、无效和重新启动。
解决方案
点击“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)
推荐阅读
- javascript - GeoJSONLayer 使回调状态加载 javascript api arcgis
- javascript - 更改 MapboxGl 上的右键和左键单击功能
- python - 使用 glob 字符串从 Google Cloud 读取时,Dask 解决了无文件错误
- python - Python __add__ 带有整数的魔术方法
- ruby-on-rails - 如何正确实现 jsonb 数组的位置?
- correlation - Construct a correlation matrix from table with non-aligned dates
- java - ${datesamp} 在哪里定义?
- laravel - Laravel 项目在 cpanel 中不工作面临错误目标类 [App\Http\Controllers\fileController] 不存在
- php - 一个数组的 PHP 倍数值 - 使用日期
- google-bigquery - BigQuery LTRIM 未返回所需结果