【发布时间】:2020-01-25 10:04:19
【问题描述】:
每当我在我的应用程序 gradle 中启用此功能时
dataBinding {
enabled = true
}
然后同步 -> 完全成功。
但是当我“运行”它时,它构建失败并显示此错误
java.lang.NullPointerException 在 android.databinding.tool.store.LayoutFileParser.parseOriginalXml(LayoutFileParser.java:135) 在 android.databinding.tool.store.LayoutFileParser.parseXml(LayoutFileParser.java:93) ...
我的应用Kotlin代码很少,android版本是3.5,minSdkVersion 19,targetSdkVersion 28,升级到androidX
我该如何解决这个问题?我应该搜索哪个部分来解决这个问题???
除了上面的代码,一切都很完美。
编辑 而且当我在升级到androidX之前回滚代码并编译它时,它也显示“空点异常”,此时没有额外的消息,只有“空点异常”。
【问题讨论】:
-
嗨@youngwoon 我可以怀疑的一个原因是因为androidx。因为有时它无法正确处理或转换布局文件。并且在运行时它将崩溃,因为找不到该类。在编译时它也会抛出一些错误。请检查并发布未转换的 androidx 包的最新布局文件。
-
@vikaskumar 谢谢你的评论!!我能解释一下“为未转换的 androidx 包发布最新的布局文件”吗?我不明白你想要什么..抱歉英语不熟悉.T_T
-
@youngwoon 除非您提供所有信息,否则无法回答这个问题......就像导致上述堆栈跟踪的 XML 文件一样。到目前为止,您只向我们展示了结果。
-
@youngwoon 遗憾的是,错误消息并没有说明这一点。可能是,其中没有一个添加了
<layout>和<data>节点,或者布局可能仍然引用com.android.support库而不是androidx库(这些不会自动迁移)。 -
好吧,做一件事,尝试通过按 command + shift + f 进行搜索并输入 android.support.constraint.ConstraintLayout 并查看是否有任何包仍然在旧包名称上,即使将它们转换为安卓x。像这样尝试recyclerview和cardview和progressbar也有完整的包名,看看它们是否包含androidx。我希望这可能会有所帮助,请在此之后告诉我。
标签: android android-databinding androidx