Android 数据绑定和类类型错误

问题描述 投票:0回答:1

我正在尝试将数据绑定 XML 布局中的视图从一种类型更改为另一种类型(滚动视图到嵌套滚动视图),但我遇到了非常奇怪的崩溃:

java.lang.NoSuchFieldError:没有实例字段 planDetailsBottomSheet Landroid/widget/ScrollView 类型;在课堂上 Lcom/mypackage/数据绑定/MyViewBinding;或其 超类(声明 “com.mypackage.databinding.MyViewBinding”出现在 /data/app/~~AaeQIbsaafCCYRCOR05z6Q==/com.mypackage.android.dev-jQMnCGSYiDqQuJ7-BXahzg==/base.apk!classes31.dex)

每当我第一次尝试访问视图时,崩溃就会在运行时发生。

  • 清理项目没有帮助
  • 生成的 Binding 类正确地将视图引用为 NestedScrollView: enter image description here
  • 重建项目是不可能的,它因一些我无法修复的明显合并错误而崩溃
  • 我使用的是 Android Studio 2024.1.2 补丁 1

将此视图从约束布局转换为滚动视图时,我遇到了同样的问题。无论我怎么努力都行不通。当要求其他开发人员尝试我的分支时,它在他们的计算机上运行。然后我意识到这是一些缓存问题,并删除了整个项目,重新克隆它并检查了我的分支,它工作了。但现在我需要再次更改视图类型,我不想每次都经历这个过程。

有任何帮助可以找出项目出了什么问题以及我可以清理/删除哪些内容以使其在更改视图类型后正常工作吗?

android xml android-layout data-binding android-databinding
1个回答
0
投票

听起来您在生成的绑定文件方面遇到了非常令人沮丧的缓存问题。当您更改数据绑定布局中的视图类型时,这种情况肯定会发生,并且构建系统并不总是立即跟上。您可以尝试以下一些方法来解决此问题,而不必每次都重新克隆项目:

使缓存无效/重新启动:在 Android Studio 中,转到“文件”->“使缓存无效/重新启动...”,这将清除可能导致问题的所有本地缓存。之后,重新启动 Android Studio 并重建项目。

手动删除生成的绑定文件:有时清理项目并不能完全清除生成的文件。尝试从项目目录中手动删除 build/ 文件夹,然后重建项目。这将强制系统重新生成所有绑定文件。

检查您的构建环境:如果您在不同的分支和不同的机器上工作,请确保您的 Gradle 版本和 Android Studio 版本一致。构建工具的不匹配可能会导致这些问题。

明显的合并问题:由于您遇到了明显的合并错误,请务必仔细检查日志。这些错误可能会阻止重建过程并阻止修复生效。通常,这类似于重复的权限或冲突的活动。首先解决这些问题以允许项目构建。

如果这些都不起作用,您还可以尝试删除 .idea/ 文件夹和 *.iml 文件(只需先备份它们)并重新打开项目。

如果这些有帮助,请告诉我!

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.