尝试将 Gradle 插件从 3.5.1 迁移到 3.5.2 时数据绑定出现 StackOverflowError
StackOverflowError in databinding while trying to migrate Gradle plugin from 3.5.1 to 3.5.2
我的目标是将 android gradle 插件从 3.5.1 迁移到 3.5.2。
但是,一旦我这样做,构建就会失败并出现以下错误:
error: cannot generate view binders java.lang.WhosebugError
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 似乎会失败。请在 Google 问题跟踪器中查看 this comment 类似问题。
您可以尝试从您的代码库中删除 .get()
用法,这是完全安全的。
编辑:
如果您使用的是 LiveData,请确保您没有在任何 XML 文件中使用 .getValue()
。
我在 AGP 3.4.2 上收到此警告:
Do not explicitly call 'get()' on ObservableFields or 'getValue()' on
LiveData in an expression. This support will be removed soon.
似乎在 AGP 3.5.2 中删除了此支持,changelog 上没有提及。
我的目标是将 android gradle 插件从 3.5.1 迁移到 3.5.2。
但是,一旦我这样做,构建就会失败并出现以下错误:
error: cannot generate view binders java.lang.WhosebugError
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 似乎会失败。请在 Google 问题跟踪器中查看 this comment 类似问题。
您可以尝试从您的代码库中删除 .get()
用法,这是完全安全的。
编辑:
如果您使用的是 LiveData,请确保您没有在任何 XML 文件中使用 .getValue()
。
我在 AGP 3.4.2 上收到此警告:
Do not explicitly call 'get()' on ObservableFields or 'getValue()' on LiveData in an expression. This support will be removed soon.
似乎在 AGP 3.5.2 中删除了此支持,changelog 上没有提及。