未解决的参考:将数据绑定导入 MainActivity 时的数据绑定
Posted
技术标签:
【中文标题】未解决的参考:将数据绑定导入 MainActivity 时的数据绑定【英文标题】:Unresolved reference: databinding when importing databinding to MainActivity 【发布时间】:2020-06-12 15:24:02 【问题描述】:当我尝试将数据绑定导入 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
其中包名是我的包名。包名被识别,只有数据绑定不被识别,所以显示为红色。
我猜是因为这个,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"
我已经尝试关注这个 codelab https://codelabs.developers.google.com/codelabs/kotlin-android-training-add-navigation/#0 并搜索解决方案,但无法修复它。
有人可以帮忙吗?
提前致谢。
【问题讨论】:
很可能是因为数据绑定编译器中的错误。换句话说,某些布局文件中一定存在错误,Databinding 库无法为其生成绑定类。您应该检查 gradle 构建日志中的数据绑定编译器错误,这些错误通常位于构建日志的末尾。 在我的情况下,解决方案是:***.com/a/66237310/3613808 【参考方案1】:看起来我在布局中缺少布局标记以支持数据绑定:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
【讨论】:
【参考方案2】:correct Answer
也用标签包裹你的根视图
var cropAdviceBinding: TemplateCropAdviceBinding? = null
cropAdviceViewStub.viewStub?.apply
setOnInflateListener _, inflated ->
cropAdviceBinding =
DataBindingUtil.bind(inflated)
inflate()
【讨论】:
以上是关于未解决的参考:将数据绑定导入 MainActivity 时的数据绑定的主要内容,如果未能解决你的问题,请参考以下文章
未解决的参考:Android Studio 4.1.3 中的数据绑定
Sqoop- sqoop将mysql数据表导入到hive报错(未解决)
OpenSSL解决ArcGIS软件部署的证书问题(三)--ArcGIS绑定证书
未解决的参考 - 活动无法识别 android studio v4 中的合成导入