Android Can';启用安全args插件后,无法从数据绑定获取根视图

Android Can';启用安全args插件后,无法从数据绑定获取根视图,android,kotlin,android-databinding,android-safe-args,Android,Kotlin,Android Databinding,Android Safe Args,我正在使用dataBinding开发一个Android应用程序,目前正在尝试添加safe args插件,但启用该插件后,我无法再通过binding获得根视图。root-Android Studio给出错误: Unresolved Reference None of the following candidates is applicable because of a receiver type mismatch: * internal val File.root: File defined in

我正在使用dataBinding开发一个Android应用程序,目前正在尝试添加safe args插件,但启用该插件后,我无法再通过binding获得根视图。root-Android Studio给出错误:

Unresolved Reference
None of the following candidates is applicable because of a receiver type mismatch:
* internal val File.root: File defined in kotlin.io
我怎样才能让数据绑定和安全arg一起玩得很好

注意,当代码片段在Kotlin中时,我很乐意接受Java的答案。在Java中不是很舒服,但我可以很容易地阅读和翻译它

我无法通过谷歌搜索错误消息和“安全参数”来找到其他有同样问题的人。我首先尝试了Android文档中列出的类路径:

然后还发现了一个教程,建议我使用:

classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha07"
两者都有相同的问题:binding.root在激活插件时出错

这是我的片段的onCreateView()。该返回行在未启用安全参数时正常工作,在启用安全参数时不工作

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

    return binding.root
}
非常感谢您对解决或理解此问题的任何帮助

我也有同样的问题, 这对我来说太有吸引力了, 但是只要重新命名布局就可以了,
试试看:D

我也有同样的问题,最后我试了一下

文件->无效缓存/重新启动


它适合我。

我也有类似的问题,但仅在包含的布局中,请为我执行这些操作

Build -> Clean Project
Build -> Rebuild Project

这确实奏效了,奇怪的是,谢谢。对于遇到同样问题的其他人,我所要做的就是重构>重命名与不识别binding.root的类关联的布局xml文件。您还必须相应地重命名自动生成的绑定类类型。一旦我这样做了,一切正常,我甚至能够重新命名回原来的名字。不确定这是怎么做的重建项目没有..而且如果你在这里是因为安全参数的问题,可能会考虑使用共享ViewModel和LiveData代替。这就是我现在使用的,因为当我被安全参数卡住时,我不得不继续使用,我很高兴无效缓存命令不起作用,但重命名未被识别的布局成功了。看起来,如果布局中的ID与它被丢弃的名称之一匹配,重命名布局以匹配视图修复了它-奇怪!只需
Invalidate
即可,无需重新启动Android Studio。
Build -> Clean Project
Build -> Rebuild Project