文章目录

  • 一、报错信息
  • 二、解决方案

一、报错信息


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 )相关推荐

  1. 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...

  2. 【idea编译错误】IDE 编译报错: Dangling metacharacter

    IDE 编译报错: Dangling metacharacter Dangling metacharacter 的意思是说:摇摆不定的元字符. 翻译成编程意思就是:当前字符计算有其它意思,并不能确定你 ...

  3. 【错误记录】Kotlin 编译报错 ( Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable ... )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...

  4. 【错误记录】Kotlin 编译报错 ( Smart cast to ‘Xxx‘ is impossible, because ‘xxx‘ is a mutable property ... )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...

  5. 【错误记录】Kotlin 编译报错 ( Class ‘Xxx‘ is not abstract and does not implement abstract member )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...

  6. 【错误记录】NDK 报错 java.lang.UnsatisfiedLinkError 的一种处理方案 ( 主应用与依赖库 Module 的 CPU 架构配置不匹配导致 )

    文章目录 一.问题描述 二.问题排查 三.解决方案 一.问题描述 NDK 开发 , 在调用 JNI 对应 Java 类时 , 静态代码块中 System.loadLibrary 语句调用时 , 报如下 ...

  7. 【错误记录】Groovy 报错 ( Execution failed for task ‘:compileGroovy‘. > org/apache/tools/ant/taskdefs/Java )

    文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 编译 Groovy 代码时 , 报如下错误 , 该错误不是代码错误 , 而是 Groovy 工程的环境配置错误 ; 相同的环境 , 昨 ...

  8. 【错误记录】Flutter 报错 ( Android Studio 中 main.dart 左侧不显示设备栏 )

    文章目录 一.报错信息 二.解决方案 一 ( 备选方案 ) 三.解决方案 二 ( 推荐方案 ) 一.报错信息 为了解决 [错误记录]Flutter 构建报错 ( Because xxx require ...

  9. 【错误记录】前台进程报错 ( Bad notification for startForeground invalid channel for service notification )

    文章目录 一.报错信息 二.解决方案 一.报错信息 使用如下代码启动前台服务 : public class ForegroundService extends Service {public Fore ...

最新文章

  1. 任务二:1、选择器 2、连接集中状态的顺序 3、浮动的用发和原理 4、盒模型在IE和Google等不同浏览器的区别与联系...
  2. html 常用方法,jquery的常用方法有哪些?
  3. MPLS/×××分解:防止PE-CE的路由环路
  4. POJ1321(棋盘问题)
  5. mastercam加工报表生成_听说最厉害的工程师才敢这样玩五轴加工?
  6. 【实战】Weblogic xmldecoder反序列化Getshell
  7. Git 学习笔记--git 查看某个文件的修改历史
  8. net use 使用
  9. armax函数 matlab 源码_【源码】Kmeans聚类算法(超快速、简洁的设计方法)
  10. mysql如何让自增id从1开始设置方法
  11. Spark源码阅读@ListenerBus 的实现
  12. 风尚云网学习-input属性总结
  13. Windows API GetLastError()函数返回值含义解释
  14. 讲真,只有low逼才热衷于打脸
  15. 【白板动画制作软件】万彩手影大师教程 | 调节动作播放时长
  16. SAS实验05 ——方差分析
  17. Python爬虫(第五周)
  18. oracle 导出owner,如何知道exp导出的dmp文件中owner是谁
  19. Winform从入门到精通(8)——RichTextBox(史上最全)
  20. 当当网商品详情API接口(当当商品详情接口,当当商品评论接口,当当商品问答接口,当当抢购价接口,关键词搜索当当网商品接口)代码对接教程

热门文章

  1. C#中Split函数的使用
  2. ***惯用的社会工程学手法
  3. Spring Cloud学习系列第六篇【分布式配置中心】
  4. Linux查看进程和终止进程的技巧
  5. 入门Leaflet之小Demo
  6. JSON中的安全问题
  7. XML系列之--解析电文格式的XML(二)
  8. 一个简单视频网站开发小记
  9. 安装 postgresql
  10. [转]php curl 设置host curl_setopt CURLOPT_HTTPHEADER 指定host