【错误记录】Kotlin 编译报错 ( Not nullable value required to call an ‘iterator()‘ method on for-loop range )
文章目录
- 一、报错信息
- 二、解决方案
一、报错信息
Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ;
将 Android 的编译版本 和 目标版本 都升级为 303030 之后 , Kotlin 的编译检查变得更严格 , 之前不规范的代码需要逐个修改 ;
将编译版本 compileSdkVersion 和 目标版本 targetSdkVersion 由 28 修改为 30 ;
android {compileSdkVersion 30buildToolsVersion "29.0.2"defaultConfig {applicationId "com.xxx.xxx"minSdkVersion 19targetSdkVersion 30versionCode 1versionName "0.1"}
}
编译时报错如下 :
Not nullable value required to call an 'iterator()' method on for-loop range
在 编译版本 compileSdkVersion 和 目标版本 targetSdkVersion 都为 282828 时 , 编译不报上述错误 ;
改了下 Android 编译版本号 , 报了 286286286 个错误 , 今天逐个解决上述编译错误 ;
二、解决方案
错误分析 :
使用 ForEach 遍历可空类型的集合时 , 会出现此类报错 ; 因为被遍历的集合 files 有可能为空 , 由此可能会产生崩溃 ;
for (file in files){}
解决方案 :
上述问题有两种解决方案 , 可以将该变量转为非空类型的变量 , 也可以遍历 files.orEmpty() 集合 ;
方案一 : 将该变量转为非空类型的变量
for (file in files!!){}
方案二 : 遍历 files.orEmpty() 集合 , 如果 files 为空 , 则 files.orEmpty() 会返回空集合 ; 如果 files 不为空 , 则 files.orEmpty() 返回原来的集合 ;
for (file in files.orEmpty()){}
【错误记录】Kotlin 编译报错 ( Not nullable value required to call an ‘iterator()‘ method on for-loop range )相关推荐
- 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )
文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...
- 【idea编译错误】IDE 编译报错: Dangling metacharacter
IDE 编译报错: Dangling metacharacter Dangling metacharacter 的意思是说:摇摆不定的元字符. 翻译成编程意思就是:当前字符计算有其它意思,并不能确定你 ...
- 【错误记录】Kotlin 编译报错 ( Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable ... )
文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...
- 【错误记录】Kotlin 编译报错 ( Smart cast to ‘Xxx‘ is impossible, because ‘xxx‘ is a mutable property ... )
文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...
- 【错误记录】Kotlin 编译报错 ( Class ‘Xxx‘ is not abstract and does not implement abstract member )
文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...
- 【错误记录】NDK 报错 java.lang.UnsatisfiedLinkError 的一种处理方案 ( 主应用与依赖库 Module 的 CPU 架构配置不匹配导致 )
文章目录 一.问题描述 二.问题排查 三.解决方案 一.问题描述 NDK 开发 , 在调用 JNI 对应 Java 类时 , 静态代码块中 System.loadLibrary 语句调用时 , 报如下 ...
- 【错误记录】Groovy 报错 ( Execution failed for task ‘:compileGroovy‘. > org/apache/tools/ant/taskdefs/Java )
文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 编译 Groovy 代码时 , 报如下错误 , 该错误不是代码错误 , 而是 Groovy 工程的环境配置错误 ; 相同的环境 , 昨 ...
- 【错误记录】Flutter 报错 ( Android Studio 中 main.dart 左侧不显示设备栏 )
文章目录 一.报错信息 二.解决方案 一 ( 备选方案 ) 三.解决方案 二 ( 推荐方案 ) 一.报错信息 为了解决 [错误记录]Flutter 构建报错 ( Because xxx require ...
- 【错误记录】前台进程报错 ( Bad notification for startForeground invalid channel for service notification )
文章目录 一.报错信息 二.解决方案 一.报错信息 使用如下代码启动前台服务 : public class ForegroundService extends Service {public Fore ...
最新文章
- 任务二:1、选择器 2、连接集中状态的顺序 3、浮动的用发和原理 4、盒模型在IE和Google等不同浏览器的区别与联系...
- html 常用方法,jquery的常用方法有哪些?
- MPLS/×××分解:防止PE-CE的路由环路
- POJ1321(棋盘问题)
- mastercam加工报表生成_听说最厉害的工程师才敢这样玩五轴加工?
- 【实战】Weblogic xmldecoder反序列化Getshell
- Git 学习笔记--git 查看某个文件的修改历史
- net use 使用
- armax函数 matlab 源码_【源码】Kmeans聚类算法(超快速、简洁的设计方法)
- mysql如何让自增id从1开始设置方法
- Spark源码阅读@ListenerBus 的实现
- 风尚云网学习-input属性总结
- Windows API GetLastError()函数返回值含义解释
- 讲真,只有low逼才热衷于打脸
- 【白板动画制作软件】万彩手影大师教程 | 调节动作播放时长
- SAS实验05 ——方差分析
- Python爬虫(第五周)
- oracle 导出owner,如何知道exp导出的dmp文件中owner是谁
- Winform从入门到精通(8)——RichTextBox(史上最全)
- 当当网商品详情API接口(当当商品详情接口,当当商品评论接口,当当商品问答接口,当当抢购价接口,关键词搜索当当网商品接口)代码对接教程