15

我正在使用 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

我怎样才能让数据绑定和安全参数一起玩得很好?

请注意,虽然代码片段在 Kotlin 中,但我很乐意接受 Java 答案。在 Java 中不太舒服,但我可以轻松阅读和翻译它。

通过谷歌搜索错误消息和“安全参数”,我无法找到其他有同样问题的人。我首先尝试使用 Android 文档中列出的类路径:https ://developer.android.com/guide/navigation/navigation-pass-data

classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0"

然后还找到了一个建议我使用的教程:

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
}

非常感谢任何解决或理解此问题的帮助!

4

3 回答 3

24

我有同样的问题,最后我尝试了

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

这个对我有用。

于 2019-10-26T09:08:56.473 回答
13

我有同样的问题,它对我来说是如此有线,但只需重命名布局将再次起作用,尝试它:D

于 2019-10-25T04:32:19.907 回答
0

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

Build -> Clean Project
Build -> Rebuild Project
于 2021-03-30T04:33:38.023 回答