Android 如何解决kotlin中未找到数据绑定UTIL的问题

Android 如何解决kotlin中未找到数据绑定UTIL的问题,android,kotlin,data-binding,Android,Kotlin,Data Binding,我目前正在努力学习android开发,我正在跟随codeLabs的指导 这是我的密码 package com.example.android.aboutme import android.content.Context import android.os.Bundle import android.view.View import android.view.inputmethod.InputMethodManager import android.widget.Button import an

我目前正在努力学习android开发,我正在跟随codeLabs的指导

这是我的密码

package com.example.android.aboutme

import android.content.Context
import android.os.Bundle
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.example.android.aboutme.databinding.ActivityMainBinding


  class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = DataBindingUtil.setContentView(this,R.layout.activity_main)
    
    }
}
无论发生什么情况,数据绑定始终是红色的,我无法导入它

这是我的gradle版本

buildFeatures{
    viewBinding = true
    dataBinding = true
}
这也是xml文件

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

 <LinearLayout android:orientation="horizontal">
    <Button
        android:id="@+id/done_button"
        style="@style/Widget.AppCompat.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="@dimen/layout_margin"
        android:fontFamily="@font/roboto"
        android:text="@string/done"
        android:textAlignment="center" />
    <LinearLayout/>
 <Layout/>

这只是DataBindingUtil上的一个小错误

它应该是DatabindingUtil,而不是DataBindingUtils

请试试这个

class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    //setContentView(R.layout.activity_main)

    //it is not DataBindingUtilS it is DataBindingUtil
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

}
}

如果有帮助,请告诉我。


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

<data>

</data>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/done_button"
        style="@style/Widget.AppCompat.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Test"
        android:textAlignment="center" />

</LinearLayout>
您的XML几乎没有错误

请将此代码复制粘贴到您的布局xml中,然后查看它是否有效。如果出现问题,请尝试清理和重建,并使缓存无效/重新启动


这是一个测试代码,如果它有效,您可以包含我遗漏的字体和字符串。

重新启动并使缓存无效无效。任何其他建议我编辑了我的代码,但它不起作用。现在它说的是ActivityMainBinding!不是ViewDataBinding的子类型!您好@Ahmed您是否已使用
标记将活动\u main包装好?是的,我确实包装好了,然后尝试在
构建菜单下清理项目
选择
清理项目
,然后选择
重建
它不起作用,这实际上起作用了,因此问题是由于上下文属性造成的?实际上不是上下文属性,我认为问题是由于LinearLayout和and closing标记的属性缺失造成的。始终像这样关闭LinearLayout标记
,但不要像这样关闭
。布局标签应该像这样关闭,但您是这样关闭的``虽然这段代码可能会回答问题,但提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    //setContentView(R.layout.activity_main)

    //it is not DataBindingUtilS it is DataBindingUtil
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

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

<data>

</data>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/done_button"
        style="@style/Widget.AppCompat.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Test"
        android:textAlignment="center" />

</LinearLayout>