You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中为EditText编写空值错误提示函数的崩溃问题

解决EditText空值校验崩溃问题

首先要明确:你贴出的日志里大部分是Support库与旧Android系统(Dalvik虚拟机,对应Android 4.x版本)的兼容警告,这些警告不会直接导致崩溃,真正的崩溃原因出在你的代码逻辑里。

你调用了et.length(),但EditText本身并没有这个方法!要获取输入框的文本长度,你需要先拿到它的文本内容,再调用长度方法,修正后的代码如下:

fun errorEmpty(et: EditText) {
    // 先获取EditText的文本,同时避免空指针异常
    val inputText = et.text?.toString() ?: ""
    if (inputText.isNotEmpty()) {
        et.error = null
    } else {
        et.error = "Error, field must not be empty"
        et.requestFocus()
    }
}

崩溃原因说明

EditText继承自View,而View类并没有length()方法,当你调用et.length()时,虚拟机找不到对应的方法,就会抛出NoSuchMethodException,直接导致应用崩溃。

额外优化提示

  • 增加et.text的空值判断:虽然正常场景下EditText的text不会为null,但加上?: ""可以规避极端情况的空指针问题
  • 用Kotlin自带的isNotEmpty()替代length() > 0,代码更简洁易读

调用方式和你原来的写法一致即可正常运行:

val et = someEditText
errorEmpty(et)

内容的提问来源于stack exchange,提问作者Said

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:19:03