【错误记录】Kotlin 延迟加载初始化报错 ( lateinit property string has not been initialized )
2023-06-13 09:18:01 时间
文章目录
一、报错信息
Kotlin 中
lateinit var string: String
延迟初始分化变量 , 在使用前没有经过初始化 , 报如下错误 :
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property string has not been initialized
at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1391)
at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
二、解决方案
使用
::延迟初始化变量.isInitialized
代码 , 判断该 延迟初始化变量 是否初始化 , 如果判定结果为 false , 说明该变量还没有进行初始化 ;
修改后的代码 :
if (! ::string.isInitialized) {
return
}
如果没有初始化则返回 ;
相关文章
- Kotlin 学习笔记(三)
- android Kotlin int类型和Long类型转换
- 又一巨头放弃 Java ,拥抱 Kotlin !
- Kotlin 泛型:类型参数约束
- 【Kotlin】Kotlin 自定义组件 ( 自定义 View | 自定义 SurfaceView )
- 【错误记录】Kotlin 1.5.0 编译报错 ( 1.5.0 中 Float 不能直接转 Byte 类型 )
- 【错误记录】Android Studio 4.2.1 编译报错 ( 设置支持的 Java 和 Kotlin 版本 | java.lang.BootstrapMethodError )
- 【错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( 升级支持库时处理 @NonNull 参数 )
- Java 近期新闻:MicroProfile 6.0、Kotlin 1.8、Spring Framework 升级
- 【错误记录】Kotlin 编译报错 ( Class ‘Xxx‘ is not abstract and does not implement abstract member )
- 【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
- 【错误记录】Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. The binary )
- 【Kotlin 协程】协程启动 ② ( 多协程控制 | launch 协程执行顺序控制 | Job#join() 函数 | async 协程执行顺序控制 | Deferred#await() 函数 )
- 【Kotlin 协程】Flow 操作符 ② ( 末端操作符 | collect 操作符 | reduce 操作符 | single 操作符 | first 操作符 | toList 操作符 )
- 【Kotlin 协程】Flow 流组合 ( Flow#zip 组合多个流 | 新组合流的元素收集间隔与被组合流元素发射间隔的联系 )
- 【Kotlin】数字类型 ( 安全转换函数 | 浮点型转整型 )
- 【Kotlin】类的初始化 ③ ( init 初始化块 | 初始化顺序 : 主构造函数属性赋值 -> 类属性赋值 -> init 初始化块代码 -> 次构造函数代码 )
- 【Kotlin】扩展函数 ② ( 扩展属性 | 为可空类型定义扩展函数 | 使用 infix 关键字修饰单个参数扩展函数的简略写法 )
- 【错误记录】Android Studio 编译报错 ( To use data binding annotations in Kotlin, apply the ‘kotlin-kapt‘ plu )