[尝试在将Gradle插件从3.5.1迁移到3.5.2时发生数据绑定错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[尝试在将Gradle插件从3.5.1迁移到3.5.2时发生数据绑定错误相关的知识,希望对你有一定的参考价值。

我的目标是将android gradle插件从3.5.1迁移到3.5.2。

但是,一旦执行此操作,构建失败并显示以下错误:

error: cannot generate view binders java.lang.StackOverflowError
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:209)
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)
    at android.databinding.tool.expr.Expr.resolveListeners(Expr.java:211)

它明确指出它与数据绑定有关,但是stacktrace确实很差。我尝试应用其他编译器参数来获得其他一些见识,但是没有运气。

有人遇到过同样的问题吗?有提示吗?

答案

看起来像AGP 3.5.2在您在xml文件中调用ObservableField.get()后失败。请在[Google Issues Tracker]中查看this comment类似问题。

您可以尝试从代码库中完全删除.get()使用,这是绝对安全的。

以上是关于[尝试在将Gradle插件从3.5.1迁移到3.5.2时发生数据绑定错误的主要内容,如果未能解决你的问题,请参考以下文章

将Java项目从maven迁移到gradle

更新到 android gradle 插件 3.5 后的 proguard 问题

Gradle 从 Groovy 到 KTS 迁移

从 Maven 2/3 迁移到 Gradle

使用 gradle 显示第一个 OSGi 构建 - 从 ant 迁移到 Gradle

如何使用Gradle实验插件对64位Android APK进行代码签名?