问题描述
我在集成到一个大项目时遇到了Unbound符号不允许编译器错误的问题。似乎它不支持综合扩展。有没有办法在合成扩展中使用compose?我的项目太大,无法一次迁移,并且大量使用合成扩展。如果不是,您是否知道不久会有支持计划?预先感谢。
e: java.lang.AssertionError: Unbound symbols not allowed
Unbound public symbol for public kotlinx.android.synthetic.main.activity_normal/txt.<get-txt>|-845173590652748007[0]
解决方法
合成材料 are deprecated 所以没有计划在任何地方支持它们:你应该尽快migrate to ViewBinding
(这并不难)
但是在 Compose 中支持它们实际上没有意义:由于 Compose 是声明式的而不是命令式的,您不使用 id 或任何“访问方法”,您可能需要 rethink how to do things with Compose
也许试着解释一下你想要做什么?
,@DiriNoid “它说删除所有 kotlinx 合成扩展,这对于大型项目来说真的很困难。我的问题是有没有办法在一个项目中同时使用它们”
如果您打算推迟 ViewBinding 迁移,您可以使用此 gradle 任务生成 Kotlin snythetic 代码,而无需“Kotlin android 扩展”插件
https://github.com/sanjeevirajm/kotlin_synthetic_undepreciated