Ali*_*oli 23 android gradle kotlin
对于 Gradle 6.2 版和 Android Studio 4.0.1 版,我收到了Kotlin-android-extention. 任何机构都知道如何修复它。
Ali*_*oli 33
已弃用基于谷歌文档
Kotlin Android Extensions 已弃用,这意味着不再支持使用 Kotlin 合成进行视图绑定。
对于那些想知道这synthetic是什么的人。我应该说一个简单的方法来访问UI视图ID与科特林这是通过添加'kotlin-android-extensions'在Gradle。
'kotlin-parcelize'的替代'kotlin-android-extensions'。Gee*_*moy 20
由于“kotlin-android-extensions”现已弃用,因此最好使用视图绑定。
首先,通过在 android 块下编写这些代码行,在 build.gradle 文件中启用视图绑定。
buildFeatures {
viewBinding true
}
Run Code Online (Sandbox Code Playgroud)
然后在活动文件中使用视图绑定功能
首先声明一个用于绑定的全局变量为
private lateinit var binding:ActivityMainBinding
Run Code Online (Sandbox Code Playgroud)
这里 ActivityMainBinding 是一个自动生成的类
然后在OnCreate()方法中编写这些代码
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
Run Code Online (Sandbox Code Playgroud)
现在已弃用
'Kotlin-android-extention'从插件中删除。(用于 kotlin 的访问 UI 元素的合成方式)
添加以下以使用view binding访问 UI 元素的方式
android {
...
buildFeatures {
viewBinding true
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的应用程序包含Parcelable,请添加'kotlin-parcelize'插件以使用一种简单的方法来创建parcelable,只需向@Parcelize类添加注释即可
您可以查看有关此更新的Google 指南。
小智 7
在我看来,使用这个插件仍然比介绍的方法更好,我们只需要注意 ID。\n因为随着 2017 年发布的 Android Kotlin Extensions Gradle 插件出现了 Kotlin Synthetics。对于每个布局文件,Kotlin Synthetics 都会创建一个自动生成的类,其中包含您的 view\xe2\x80\x94 ,就这么简单。\n您只需在 Gradle 文件中导入此插件,然后就可以直接引用视图引用\n它只在内部调用一次 findViewById,然后缓存它。\n这用起来很方便,也很有趣,那么为什么它被弃用了\n我们来分析一下。\n优点\n没有样板代码 \xe2\x80\x94 只需配置一旦将其添加到 Gradle 文件中,您就可以开始使用了。Kotlin Synthetics 将自动生成一个可供您使用的类。\n类型安全 \xe2\x80\x94 所有视图均从布局文件中选取其已知类型。\n缺点\n部分空安全 \xe2\x80\x94通常是空安全的,因为所有视图都必须存在于布局文件中才能生成。但是,如果您有多个基于配置的布局文件,其中某些视图存在于某些布局文件中而某些视图缺失,该怎么办?在这里,您必须手动检查 null。\n污染命名空间 \xe2\x80\x94 您可以在不同的布局中拥有相同的视图 ID,并且您可能会意外导入某些其他布局的视图,这将在运行时抛出 NullPointerException .\n仅限 Kotlin \xe2\x80\x94 Kotlin Synthetics 只能与 Kotlin 一起使用。Java 不支持它们。仍有一些项目是用 Java 编写的,可能尚未完全迁移到 Kotlin,因此 Kotlin Synthetics 可能不是在项目中获取 ViewId 的一致方法。\n由于这些问题,Kotlin Synthetics 现已被弃用。
\n现在由你来决定是否仍然像我一样使用这个插件,如果你想修复已弃用的警告,你必须避免使用已弃用的方法。
\n| 归档时间: |
|
| 查看次数: |
25579 次 |
| 最近记录: |