首页
学习
活动
专区
圈层
工具
发布

【错误记录】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 {

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

    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是通过view的id名直接引用的,所以多个布局间的同名id,就需要手动对import进行重命名处理,而且经常会引用错误的布局文件,导致运行崩溃...虽然这里生成了大量的XXXBinding文件,但是对编译速度的影响和生成Apk大小的影响几乎可以忽略: 未使用的XXXBinding文件会在混淆时被删除 编译器生成Binding文件的速度极快,同时是增加更新...目前还未找到现有项目从kotlin-android-extensions迁移到ViewBinding的好办法,如果当前的项目大量使用kotlin-android-extensions,那么迁移起来,就是一个巨大的工程

    2.6K20

    ViewBinding 与 Kotlin 委托双剑合璧

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

    2.1K20

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

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

    1.8K70

    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生成一个绑定类,该类的实例会直接引用布局中声明了资源id的View ① 自动生成的绑定类 打开:module

    1.4K30

    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生成一个绑定类,该类的实例会直接引用布局中声明了资源id的View ① 自动生成的绑定类 打开:module

    2.5K30

    Android使用ViewBinding

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

    1.2K21

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

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

    4.5K31

    【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 类的一系列功能

    6.2K11

    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.9K20

    Android | xml和view的那些事

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

    2.3K11

    Android | xml和view的那些事

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

    2.1K10

    知识点 | ViewModel 四种集成方式

    /guide/navig… ViewModel 与 Data Binding: 在 Data Binding 中使用 ViewModel 和 LiveData 于 Android Studio 的 3.1...版本时加入 支持 Java 与 Kotlin 移除 LiveData 相关的模板代码 ViewModel、LiveData 与 Data Binding 的集成方式并不是什么新功能,但它始终非常好用。...使用 Data Binding、ViewModel 和 LiveData 假设您希望在 XML 布局文件中引用 ViewModel: android="http://schemas.android.com...ViewMode 与 Kotlin 协程: viewModelScope 于 Lifecycle 的 2.1.0 版本时加入 只支持 Kotlin Android 平台上的协程 通常情况下,我们使用回调...如果您不了解协程,这里有一系列很棒的博客《在 Android 开发中使用协程》以及 codelab: 在 Android 应用中使用 Kotlin 协程以供参考。

    2.9K20

    Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版

    ,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...Kotlin的语法,等价于Java中的如下代码。...时间越久你就越觉得Kotlin设计的好,非常的简洁。...当然最主要的是多使用Kotlin,作为弱类型语言,代码的阅读需要有一定的Kotlin基础才可以,高阶的写法可读性很差,但是效率很高代码也很简洁。...后面我就直接写Kotlin代码,不熟悉的可以留言提问,事先声明我的Kotlin很菜,所以可读性相对来说高一些。 从上面的方法中可以知道逻辑就是Android6.0以上就请求权限,以下就打开蓝牙。

    2.1K21
    领券