当我尝试将数据绑定导入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,并也在寻找解决方案,但无法解决它。
任何人都可以提供帮助吗?
提前感谢。
好像我在布局中缺少布局标签以支持数据绑定:
<layout xmlns:android="http://schemas.android.com/apk/res/android">