未解析的参考:将数据绑定导入MainActivity时的数据绑定

问题描述 投票:0回答:1

当我尝试将数据绑定导入MainActivity时,出现“无法解析的引用:数据绑定”错误。

MainActivity文件:

package <package-name>

import <package-name>.databinding.FragmentLoginBinding

class LoginFragment : Fragment() {

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
        val binding = DataBindingUtil.inflate<FragmentLoginBinding>(inflater,
            R.layout.fragment_login,container,false)

        binding.register_btn.setOnClickListener { view : View ->
            view.findNavController().navigate(R.id.action_loginFragment_to_welcomeFragment)
        }

        binding.login_btn.setOnClickListener { view : View ->
            view.findNavController().navigate(R.id.action_loginFragment_to_welcomeFragment)
        }

        return binding.root
    }
}

其中package-name是我的软件包名称。包名称被识别,仅数据绑定未被识别,因此以红色显示。

我想是因为,FragmentLoginBinding in

val binding = DataBindingUtil.inflate<FragmentLoginBinding>(inflater,
            R.layout.fragment_login,container,false)

也无法识别。

项目build.gradle文件:

buildscript {
    ext{
        kotlin_version = '1.3.61'
        gradle_version = '3.6.0'
        data_binding_compiler_version = gradle_version
    }
    dependencies {
        classpath "com.android.tools.build:gradle:$gradle_version"
    }
}

App build.gradle文件:

apply plugin: 'kotlin-kapt'

android {
    dataBinding {
        enabled = true
    }
}

dependencies {
    kapt "androidx.databinding:databinding-compiler:$data_binding_compiler_version"
}

我已经尝试遵循此代码实验室https://codelabs.developers.google.com/codelabs/kotlin-android-training-add-navigation/#0,并也在寻找解决方案,但无法解决它。

任何人都可以提供帮助吗?

提前感谢。

android kotlin android-databinding
1个回答
0
投票

好像我在布局中缺少布局标签以支持数据绑定:

<layout xmlns:android="http://schemas.android.com/apk/res/android">
© www.soinside.com 2019 - 2024. All rights reserved.