首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁止Kotlin Android扩展插件生成合成视图属性

如何禁止Kotlin Android扩展插件生成合成视图属性
EN

Stack Overflow用户
提问于 2019-01-14 23:13:19
回答 2查看 3K关注 0票数 20

Kotlin Android扩展插件使用我的应用布局文件中的ID为每个视图生成静态属性,正如the documentation中所描述的那样。

我想禁用这个特性,因为我们使用DataBinding而不是Kotlin合成视图属性,有时我会意外地导入它们;它还会为我们不使用的东西增加额外的构建开销。

禁用Android扩展插件是不可能的,因为我们使用了Parcelize功能,而Parcelize功能是由同一个插件完成的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-12 09:28:46

androidExtensions DSL中有一个features属性,允许您提供要启用的功能列表。目前,只有两个可用,parcelizeviews。要禁用合成视图属性,请将以下内容添加到build.gradle

代码语言:javascript
复制
android {
   // ...
}

androidExtensions {
    features = ["parcelize"]
}

来源:https://github.com/JetBrains/kotlin/blob/6bef27e1e889b17ae84dd2ff99881727f13ac3e5/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/AndroidComponentRegistrar.kt#L57

票数 23
EN

Stack Overflow用户

发布于 2021-01-26 22:31:01

现在,android扩展插件是discontinued的,所以最好的解决方案就是通过从你的build.gradle中删除apply plugin: 'kotlin-android-extensions'来删除这个插件。

我们应该使用ViewBindingDataBinding,而不是合成物。

正如在第一个链接中所解释的,如果您还在使用parcelizer,您只需将android-extensions插件更改为kotlin-parcelize,并在需要的任何地方更改import kotlinx.parcelize.Parcelize的导入语句import kotlinx.android.parcel.Parcelize

从android扩展迁移到JetPack here的更多信息。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54184154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档