在 Kotlin 中将 BindView 实现到 MainActivity 时出现错误 "Unsolved Reference: ActivityMainBinding"

Getting an error "Unsolved Reference: ActivityMainBinding" while implementing BindView to the MainActivity in Kotlin

在我的 MainActivity.kt 文件中实施 bindView 时显示错误

Unsolved Reference: ActivityMainBinding

MainActivity.kt这一行中的错误:

private lateinit var binding: com.example.aboutme.databinding.ActivityMainBinding

MainActivity.kt

package com.example.aboutme

import android.content.Context
import android.databinding.DataBindingUtil
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.view.inputmethod.InputMethodManager

class MainActivity : AppCompatActivity() {

private lateinit var binding: com.example.aboutme.databinding.ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
 binding = DataBindingUtil.setContentView(this, layout.activity_main)
 ...
}

将数据绑定应用到 应用程序级别 gradle 文件,如下所示。

dataBinding{
    enabled = true
}

将根布局包裹在布局中,如下所示。

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
...
...
</layout>

执行 BindView 后 Build -> Rebuild Project,错误消失。

应用插件,

apply plugin: 'kotlin-kapt'

也使用,

kapt 'com.android.databinding:compiler:3.1.4'

在你的依赖项中