首页 > 解决方案 > Android ViewBinding 错误:无法访问类 'android.widget.no_name_in_PSI_3d19d79d_1ba9_4cd0_b7f5_b46aa3cd5d40'

问题描述

我尝试在我的 Android 项目中使用 ViewBinding,因为不推荐使用 Kotlin 合成。我遵循了 Android 开发者网站上的官方文档。在我的 build.gradle.kts 中,我启用了 ViewBinding:

android {
    ...
    buildFeatures {
            viewBinding = true
        }
}

我尝试在 Fragment 中使用它,例如:

    private var _binding: FragmentStartBinding? = null
    private val binding get() = _binding!!

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        _binding = FragmentStartBinding.inflate(inflater, container, false)
        return binding.root
    }

binding.root显示错误:Cannot access class 'android.widget.no_name_in_PSI_3d19d79d_1ba9_4cd0_b7f5_b46aa3cd5d40'. Check your module classpath for missing or conflicting dependencies.

Android Studio 版本:4.1.2
Kotlin 版本:1.4.30
Android Gradle 插件版本:4.1.2
Gradle 版本:6.8.1

我已经尝试过清理和重建、使缓存无效和重新启动、删除 .idea 和 .gradle 文件夹。还会生成 ViewBinding 文件,但无法使用 ViewBinding。

有人有解决这个问题的方法吗?

提前感谢您的任何回复。

标签: androidkotlinandroid-viewbinding

解决方案


从布局 xml 文件中删除版权评论后,错误消失了。然后我可以使用 Viewbinding。我希望,它会很快得到修复,这样布局文件中的任何类型的注释对 Viewbinding 来说都没有问题。

所以我的 xml 文件的顶部看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/constraint_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

更新:
我更改了版权,因此将“&”替换为“and”。这也适用于我。


推荐阅读