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

Android Studio Flamingo下Kotlin首应用点击按钮崩溃求助

问题解决:按钮点击崩溃与Kotlin Android Extensions替代方案

崩溃原因分析

你代码里的textView声明为lateinit var但从未初始化,点击按钮调用degistir方法时,访问未初始化的textView会直接抛出UninitializedPropertyAccessException,导致应用崩溃。另外,Kotlin Android Extensions确实已被官方废弃,不再支持,你的项目已经在build.gradle中开启了viewBinding true,推荐用View Binding解决视图引用问题。

修复步骤

1. 用View Binding初始化TextView

修改MainActivity.kt代码,通过View Binding获取布局中的TextView:

package com.example.myapplication

import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import com.example.myapplication.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
    }

    fun degistir(view: View) {
        // 这里的textView需和你activity_main.xml里的TextView id一致
        binding.textView.text = "Hi Android"
    }
}

2. 匹配布局中的TextView ID

确保activity_main.xml里的TextView的id是textView,如果是其他id(比如tv_content),就把代码里的binding.textView改成binding.tv_content。

关于Kotlin Android Extensions

Kotlin Android Extensions因空安全隐患、性能问题被官方废弃,View Binding是官方推荐替代方案,优势包括:

  • 编译时类型检查,避免运行时视图找不到的错误
  • 自动处理视图空值情况,更安全
  • 无需额外导入,通过Binding类直接访问视图

验证修复

重新编译运行应用,点击按钮后TextView内容会正常更新,不会再崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:54:58