android - 尝试将 Gradle 插件从 3.5.1 迁移到 3.5.2 时数据绑定(bind)中出现 StackOverflowError

标签 android android-gradle-plugin android-databinding

我的目标是将 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)

明明说是和databinding有关,但是stacktrace真的很差。我尝试应用额外的编译器参数来获得一些其他见解,但没有成功。

有人遇到过同样的问题吗?有什么建议吗?

最佳答案

在您的 xml 文件中调用 ObservableField.get() 后,AGP 3.5.2 似乎失败了。请看this comment到 Google Issues Tracker 上的类似问题。

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

编辑: 如果您使用的是 LiveData,请确保您没有在任何 XML 文件中使用 .getValue()

关于android - 尝试将 Gradle 插件从 3.5.1 迁移到 3.5.2 时数据绑定(bind)中出现 StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59177218/

相关文章:

android - 如何使用 gradleW 从命令行获取签名的 apk?

android - 无法运行项目应用程序(Gradle 构建失败)

java - 使用android中的Recycler View 同时与两组多图像进行数据绑定(bind)

安卓 : ProGuard cannot find setter for attribute "bind:items" in recycler view inside layout

android - 如何通过WiFi发送数据?

android - 如何在 Android GUI 中创建下拉/向上窗口?

java - Android:从Activity调用fragment函数,fragment函数包含getActivity()并返回null

Android Gradle keyAlias 变量存储在单独的文件中

android - 调试android数据绑定(bind)?

java - 致命异常 : main android eclipse