首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【错误记录】Android Studio 编译报错 ( To use data binding annotations in Kotlin, apply the ‘kotlin-kapt‘ plu )

文章目录 一、报错信息 二、kotlin-kapt 插件简介 三、解决方案 一、报错信息 ---- 在 Android Studio 中开发 DataBinding , 使用 如下代码开发 绑定适配器...加载网络图片 : import android.widget.ImageView import androidx.databinding.BindingAdapter class ImageViewBindingAdapter...在上述基础上 , 再次使用 @BindingAdapter("image") 注解 为布局设置数据绑定适配器 ; 在 @BindingAdapter("image") 处报如下错误 : To use data binding...编译器插件一种 , 其作用是在编译时处理 注解 ; 借助 kotlin-kapt 插件 可以 在编译时 基于 注解 生成代码 , 如 : 在 DataBinding 中 , 使用生成代码将数据模型绑定到布局文件中...; 三、解决方案 ---- 在 Module 模块下 build.gradle 构建脚本中 , 添加 kotlin-kapt 模块 , 这是 Kotlin 注解模块 ; plugins {

64030
您找到你想要的搜索结果了吗?
是的
没有找到

Google挖坑后人埋-ViewBinding(上)

相信大部分Kotlin开发者都在使用它进行Android开发,而且在之前Android Studio创建Android项目时,都会自动帮你依赖: apply plugin: 'kotlin-android-extensions...kotlin-android-extensions三宗罪 内存问题 通过反编译kotlin-android-extensions代码,你就会发现,通过kotlin-android-extensions...资源ID重名 由于kotlin-android-extensions是通过viewid名直接引用,所以多个布局间同名id,就需要手动对import进行重命名处理,而且经常会引用错误布局文件,导致运行崩溃...虽然这里生成了大量XXXBinding文件,但是对编译速度影响和生成Apk大小影响几乎可以忽略: 使用XXXBinding文件会在混淆时被删除 编译器生成Binding文件速度极快,同时是增加更新...目前还未找到现有项目从kotlin-android-extensions迁移到ViewBinding好办法,如果当前项目大量使用kotlin-android-extensions,那么迁移起来,就是一个巨大工程

2.1K20

Android 使用View Binding方法详解

之前我们与视图交互方式有findViewById、kotlin中引入Android Kotlin Extensions后直接通过id进行访问。前者模板化严重,重复代码多;后者最为方便。...每个绑定类均包含对根视图以及具有id 所有视图引用。绑定类类名是xml名称后面加“Binding”。...与Android Kotlin Extensions区别:在使用上,后者简单粗暴,直接id进行访问,而View Binding需要创建绑定类实例;后者有一些不友好地方,比如相同id存在于多个xml...(Android Kotlin Extensions)还是倾向于稳健、出错几率最小化(View Binding)。...View Binding功能完善、在未来地位和作用、以及能否超越Android Kotlin Extensions,我们仍需持续关注其后续版本。

1.7K41

ViewBinding 与 Kotlin 委托双剑合璧

只支持 Kotlin 语言; 5、收敛模板代码: 基本上每种方案都带有一定量模板代码,只有 Kotlin Synthetics 模板代码是较少。...1.3 ViewBinding 实现原理 AGP 插件会为每个 XML 布局文件创建一个绑定类文件 xxxBinding ,绑定类中会持有布局文件中所有带 android:id 属性 View 引用...不会使用类会在混淆时被压缩。 ---- 2. ViewBinding 基本用法 这一节我们来介绍 ViewBinding 使用方法,内容不多。...Binding 视图绑定[10] —— 官方文档 View BindingKotlin 委托属性巧妙结合,告别垃圾代码!...视图绑定: https://developer.android.google.cn/topic/libraries/view-binding [11] View BindingKotlin 委托属性巧妙结合

1.6K20

Android:Jetpack之视图绑定——ViewBinding

Android Jetpack 向后兼容,是为现代设计实践而设计,如关注点分离、测试能力、松散耦合、观察者模式、控制翻转、Kotlin集成等生产力特性。...语言支持; AppCompat→ 帮助较低版本Android系统进行兼容; Android KTX→ 基于Kotlin特性为Android、Jetpack提供一些简易易用扩展; Multidex→...普及,带来了扩展创建kotlin-android-extensions(KAE),直接拿id当控件用,原理: 类中定义一个存储控件引用HashMap,id为key,控件实例为value,当用到控件时,...(layoutInflater) // 2、获得对根视图引用 val view = binding.root // 3、让根视图称为屏幕上活动视图...: Binding VBHelper 5.原理 AGP会为模块中每个XML生成一个绑定类,该类实例会直接引用布局中声明了资源idView ① 自动生成绑定类 打开:module

99730

Android:Jetpack之视图绑定——ViewBinding

Android Jetpack 向后兼容,是为现代设计实践而设计,如关注点分离、测试能力、松散耦合、观察者模式、控制翻转、Kotlin集成等生产力特性。...语言支持; AppCompat→ 帮助较低版本Android系统进行兼容; Android KTX→ 基于Kotlin特性为Android、Jetpack提供一些简易易用扩展; Multidex→...普及,带来了扩展创建kotlin-android-extensions(KAE),直接拿id当控件用,原理: 类中定义一个存储控件引用HashMap,id为key,控件实例为value,当用到控件时,...(layoutInflater) // 2、获得对根视图引用 val view = binding.root // 3、让根视图称为屏幕上活动视图...: Binding VBHelper 5.原理 AGP会为模块中每个XML生成一个绑定类,该类实例会直接引用布局中声明了资源idView ① 自动生成绑定类 打开:module

1.2K30

Java四种引用解析以及在Android应用

Java中四种引用状态分析 在JDK1.2之前,Java中引用定义很传统:如果引用类型数据中存储数值代表是另一块内存起始地址,就称这块内存代表着一个引用。...因此在JDK1.2之后,Java对引用概念进行了扩充,将引用分为强引用、软引用、弱引用、虚引用4种,这4种引用强度依次减弱,下面将分析每种引用在内存回收时候表现以及涉及到Android具体应用...意味着整个应用将停止运行,这个软引用Android中发挥了重要作用,特别是在缓存方面,由于一些需求,需要加快显示妥或者数据之类,需要用到内存上缓存,但是要求在系统内存紧张时候就回收掉,因此这个场景下就非常适合用软引用做缓存了...,下面举个android图片加载例子,在还没有ImageLoader,Glide,Fresco时候,图片加载需要自己封装,内存缓存也可以用这种,下面看一下简单代码分析: public class...弱引用引用也是用来描述非必需对象,但是它强度比软引用更弱一些,跟软引用内存不足被回收不同是,被弱引用关联对象,只能生存到下一次垃圾收集发生之前。

1.7K70

Android使用ViewBinding

基于Kotlin扩展 近几年AndroidKotlin支持,我们开始使用 Android Kotlin extensions。 在文件中导入布局文件直接引用viewId。...ViewBinding和Kotlin扩展 ViewBinding 和 Kotlin 扩展 都是 Android 开发中常用技术,用于简化视图查找和绑定过程。...在多个模块中引用同一个视图时可能会出现命名冲突问题,需要通过手动指定全限定名解决。...Kotlin扩展: Kotlin扩展 是 Kotlin 语言特性,其通过扩展函数方式,允许开发者为现有的类添加新函数或属性。...Kotlin扩展 对视图数据获取和类型安全性没有提供直接支持,需要手动处理可能空指针异常和类型转换。 Kotlin扩展 会增加 APK 大小,因为它是在运行时动态添加函数。

39021

kotlin-android-extensions插件也被废弃了?扶我起来

kotlin-android-extensions插件可能算得上是我最喜欢一个KotlinAndroid特性了。...比较容易让人想到一个缺点就是,kotlin-android-extensions插件只能支持Kotlin语言,而无法支持Java语言。...我们可以通过点击Android Studio顶部导航栏Tools -> Kotlin -> Show Kotlin Bytecode来查看这段代码对应Kotlin字节码,然后在弹出窗口中点击Decompile...这样,我们就不需要再使用findViewById()函数来查找控件实例了,而是调用binding.fruitImage和binding.fruitName就可以直接引用到相应控件实例。...接下来事情就很简单了,直接使用titlebarBinding变量就可以引用到titlebar.xml中定义各个控件了。

2.7K31

Kotlin】:: 双冒号操作符详解 ( 获取类引用 | 获取对象类型引用 | 获取函数引用 | 获取属性引用 | Java 中 Class 与 Kotlin KClass )

文章目录 一、:: 双冒号操作符 1、获取类引用 引用类型 KClass 说明 2、获取对象类型引用 3、获取函数引用 4、获取属性引用 二、 java.lang.Class 与 kotlin.reflect.KClass...一、:: 双冒号操作符 ---- 在 Kotlin 中 , :: 双冒号操作符 作用是 获取 类 , 对象 , 函数 , 属性 类型对象 引用 ; 获取这些引用 , 并不常用 , 都是在 Kotlin...1、获取类引用Kotlin 中 , 使用 :: 双冒号操作符 获取 类类型对象引用 代码格式为 : Java或Kotlin类名::class 获取 Kotlin 类型对象 类型...} 2、获取对象类型引用Kotlin 中 , 使用 :: 双冒号操作符 获取 对象类型引用 代码格式为 : Java或Kotlin实例对象::class 获取 对象类型引用 类型 为 KClass...---- KClass 是 Kotlin 引用类型 , 是 Kotlin实例对象 , 通过 类名::class 可以获取 KClass 引用 ; KClass 提供了关于 Kotlin一系列功能

4.3K10

Android基于DataBinding+Koin实现MVVM模式页面快速开发框架

Koin 无反射、无代码生成且使用更简单;借助该库可轻松在基于 kotlin Android 应用开发中实现依赖注入,降低代码耦合性。...' id 'org.jetbrains.kotlin.android' // 添加 kotlin-kapt 插件 id 'kotlin-kapt' } 配置完成后,点击 Sync...源码解析 前面介绍了 ardf实现自动装载布局、自动注入 ViewModel 和事件处理使用,那么 ardf是如何实现这些功能呢?...同样先看一个简单时序图: 时序图解析: • 事件通过 Activity 传到到 View • Binding 里监听到事件后将事件传递到 ViewModel • ViewModel 中调用父类 BaseViewModel...总结 本文主要介绍了 ardf(Android 快速开发框架)中基于 DataBinding + Koin MVVM 模式页面快速开发及事件处理使用方法,并通过源码解析详细介绍了其实现原理,从而进一步提高

1.4K20

Android Studio 3.6中新视图绑定工具ViewBinding 用法详解

近两年由于谷歌对Kotlin支持,我们开始使用 Android Kotlin extensions。 在文件中导入布局文件直接引用viewId。无需做其他额外操作,最为方便。...每个绑定类还包含一个 getRoot() 方法,提供为布局文件根视图直接引用。...和 Android Kotlin extensions 相比较我觉得都二者差不多。说不上谁更好。和databinding相比较就是数据绑定库仅处理使用 <layout 代码创建数据绑定布局。...此外,当视图仅在布局某些配置中存在时,在绑定类中包含其引用字段将用@Nullable •类型安全性:每个绑定类中字段具有与其在XML文件中引用视图匹配类型。...与data binding区别 视图绑定和数据绑定库都生成可用于直接引用视图绑定类。 但是,有明显区别: •data binding库仅处理使用标记创建数据绑定布局。

1.5K20

Android | xml和view那些事

嗨,我是写博客满脑子骚东西哈利迪~今天和大伙聊聊Androidxml和view那些事,首先会分析一下xml布局解析inflate流程,然后会介绍一些业内方案,如: 提效篇: JakeWharton...:著名Butterknife、 Android自带:双向绑定DataBinding、省去findViewByIdViewBinding和kotlin扩展、 性能优化篇: 掌阅:将xml转view流程提前到编译期...耗时,类编译耗时 类增多,意味着包体积增大 DataBinding/ViewBinding/kotlin扩展 DataBinding DataBinding可以通过binding对象直接访问到xml布局里有...kotlin扩展 如果项目有使用kotlin,还可以使用kotlin扩展插件来免去findViewById操作。...感兴趣可以看哈迪之前写系列文章硬核Virtualview。 哈迪在inflate章节中猜测:Androidxml二进制解析是不是流式、指针移位方式来操作?

1.8K10

Android | xml和view那些事

嗨,我是写博客满脑子骚东西哈利迪~今天和大伙聊聊Androidxml和view那些事,首先会分析一下xml布局解析inflate流程,然后会介绍一些业内方案,如: 提效篇: JakeWharton...:著名Butterknife、 Android自带:双向绑定DataBinding、省去findViewByIdViewBinding和kotlin扩展、 性能优化篇: 掌阅:将xml转view流程提前到编译期...耗时,类编译耗时 类增多,意味着包体积增大 DataBinding/ViewBinding/kotlin扩展 DataBinding DataBinding可以通过binding对象直接访问到xml布局里有...kotlin扩展 如果项目有使用kotlin,还可以使用kotlin扩展插件来免去findViewById操作。...感兴趣可以看哈迪之前写系列文章硬核Virtualview。 哈迪在inflate章节中猜测:Androidxml二进制解析是不是流式、指针移位方式来操作?

1.9K11
领券