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

Android Studio新手求助:Kotlin Android Extensions插件已弃用,如何迁移?

迁移Kotlin Android Extensions到View Binding(新手友好版)

Kotlin Android Extensions(KAE)已被官方废弃,最适合新手的替代方案是View Binding,跟着以下步骤操作即可完成迁移:

1. 移除废弃插件

打开项目中的app/build.gradle(注意是Module级的配置文件,不是根目录的全局配置),找到plugins代码块,删掉其中的id 'kotlin-android-extensions'行。

修改前:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-android-extensions' // 此行删除
}

修改后:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

2. 启用View Binding

同样在app/build.gradle的android代码块内,添加View Binding的配置:

android {
    namespace "com.your.package.name" // 保留你的包名,无需修改
    compileSdk 34 // 保留你的SDK版本,无需修改

    defaultConfig {
        applicationId "com.your.package.name"
        minSdk 24
        targetSdk 34
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    // 新增这部分配置
    buildFeatures {
        viewBinding true
    }

    // 保留其他原有配置...
}

添加完成后,点击右上角的Sync Now同步Gradle配置。

3. 修改MainActivity代码

原来直接用控件ID(如button1、editText1)的写法,替换为View Binding的调用方式:

原KAE写法(需替换):

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        // 直接通过ID调用控件
        button1.setOnClickListener {
            val input = editText1.text.toString()
        }
    }
}

新View Binding写法:

import com.your.package.name.databinding.ActivityMainBinding // 替换为你的实际包名

class MainActivity : AppCompatActivity() {
    // 声明Binding对象,用lateinit延迟初始化
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 初始化Binding,替代原setContentView
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        // 通过binding.控件ID调用控件
        binding.button1.setOnClickListener {
            val inputText = binding.editText1.text.toString()
            // 编写你的点击逻辑
        }

        // 其他按钮同理,比如binding.button2.setOnClickListener(...)
    }
}

关键注意点

  • ActivityMainBinding是Android Studio自动生成的类,命名规则为:布局文件名(如activity_main.xml)转为驼峰式后加Binding后缀。如果找不到这个类,点击顶部菜单栏Build -> Make Project重新编译即可生成。
  • 所有原直接用ID调用的控件,现在都要加上binding.前缀,比如binding.button3、binding.editText2。

完成以上步骤后,就完全替代了KAE的功能,且是官方推荐的方案,不会再出现废弃提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:37:19