不兼容的类型: 推论变量 T 具有不兼容的上限 ActivityMainBinding,ViewDataBinding

Android gradle编译时字节码处理 android app的构建是使用gradle 工具,它提供给了开发者自定义编译期行为的能力。一般情况下,我们在transform阶段进行字节码的修改,插入,删除等操作。通过字节码处理,我们可以完成很多cool的事情,比如根据编译时注解,完成一些特定的操作等。ASM ( 如库’com.android.tools.build:gradle:3.6.4’)在app module中的build.gradle中,使用上面开发的插件。修改字节码的时候,我们可以使用javassist或者ASM。 阅读详情

问题描述分析原因解决方案

源码:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding mainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
   }

}

报错:

不兼容的类型: 推论变量 T 具有不兼容的上限 ActivityMainBinding,ViewDataBinding。

在  implementation 'androidx.databinding:databinding-runtime:4.1.3'后面增加了:
    implementation 'androidx.databinding:databinding-adapters:4.1.3'
    implementation 'androidx.databinding:databinding-common:4.1.3'
    implementation 'androidx.databinding:databinding-compiler-common:4.1.3'
    annotationProcessor 'androidx.databinding:databinding-compiler:4.1.3'
   

Caused by: android.databinding.tool.util.LoggedErrorException: failure, see logs for details.
AndroidX Error: Both old and new data binding packages are available in dependencies. Make sure you've setup jettifier  for any data binding dependencies and also set android.useAndroidx in your gradle.properties file.

duplicate entry: module-info.class set android.enableJetifier=false



Duplicate class error,Android support和Androidx库共存的问题_vamayoumo的博客-优快云博客

android.useAndroidX=true//是否使用androidx    
android.enableJetifier=true//是否将引入的第三方库中的android.support强制转为androidx
android.jetifier.blacklist=A.aar
 

butterknife从8.8.1升级到10.0.0

implementation "com.jakewharton:butterknife:10.0.0"
annotationProcessor "com.jakewharton:butterknife-compiler:10.0.0"
 

Caused by: com.android.tools.build.jetifier.processor.transform.bytecode.AmbiguousStringJetifierException: The given artifact contains a string literal with a package reference 'android.support.design.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.
 

问题:The given artifact contains a string literal with a package reference 'andro_d u o l c-优快云博客

AndroidX Error: Both old and new data binding packages are available in dependencies. Make sure you've setup jettifier  for any data binding dependencies and also set android.useAndroidx in your gradle.properties file.

butterknife 遇上 AndroidX_轻狂书生YT的博客-优快云博客

com.android.tools.build       'android.support.design.widget' that cannot be safely rewritten.

应该是dependencies里还有其他包,注释掉。
//    implementation 'com.google.android.material:material:1.4.0'

最终注释掉 

//    implementation project(':p02asmClick_plugin')

解决了。大意了,把transform插件的依赖去掉,本来就不应该加上这个依赖,它是插件,不是模块。

Android MVVM实战:LiveData与Data Binding原理与避坑指南 LiveData是Android Jetpack中专为UI生命周期设计的状态观察者,其核心价值在于自动绑定LifecycleOwner并精准解绑,避免内存泄漏;Data Binding则通过编译期生成ViewDataBinding类,将XML声明式逻辑与Java/Kotlin代码解耦,显著提升UI渲染性能与可维护性。二者协同构成轻量、稳定、易调试的MVVM落地方案,特别适用于电商、金融等对稳定性与迭代效率要求严苛的商用App开发。本文聚焦真实项目中的状态管理、双向绑定、生命周期感知及高频编译/运行时问题,提 阅读详情

相关推荐

Android MVVM实战:LiveData与Data Binding协同原理与避坑指南

LiveData 是 Android 中基于生命周期感知的可观察数据容器,其核心价值在于自动绑定 LifecycleOwner 实现安全通知;Data Binding 则是编译期驱动的 UI 声明式绑定机制,通过生成 Binding 类实现数据与视图的零样板连接。二者并非独立组件,而是 MVVM 架构中分工明确的技术组合:LiveData 负责状态分发的时机控制,Data Binding 负责状态到 UI 的映射执行。这种协同显著降低 findViewById 和手动监听的代码量,提升配置变更(如横竖屏)下

weixin_30787531的博客 504

java: 不兼容的类型: 推论变量T具有不兼容的限制范围 等式约束条件: T 下限: java.lang.Object

开发中遇到一个比较生僻的关于泛型T的问题。想要利用泛型封装一下统一返回实体时报错记录学习一下。

心比天高,仗剑走天涯,保持热爱,奔赴向梦想! 6756

IDEA/Maven编译错误:类型不兼容,推断类型与上限不符合 Java

在使用IDEA和Maven进行Java编程时,可能会遇到类型不兼容的错误,其中一个常见的错误是推断类型与上限不符合。为了解决这个错误,我们可以修改代码,确保类型参数与上限相匹配,或者使用通配符来接受任何类型的参数。有时候,在使用IDEA和Maven进行编译时,可能会遇到类型不兼容的错误,其中一个常见的错误是推断类型与上限不符合。如果推断类型与指定的上限不匹配,就会出现类型不兼容的错误。然而,当我们尝试编译这段代码时,就会遇到类型不兼容的错误,错误消息为:“不兼容的类型: 推断类型不符合上限”。

CyberLancer的博客 2736

java:不兼容的类型:推论变量 T具有不兼容的限制范围

分享一个敲代码过程中遇到的一个编译异常:代码报错如下: 问题代码块如下: 【问题分析:queryForOne方法的返回值类型是在编译期动态获取的,传入的是User.class,因此queryForOne方法的返回值类型是User类型的,而User类型是自定义的pojo,queryUserByname方法的返回值确是Boolean类型的,因此报错的原因简单归结起来就是:return返回的是一个User类型的数据(等式约束条件com.iroman.pojo.User),而编译器要求返回的是一给.

qq_56876713的博客 8726

Maven编译不兼容解决方案

eclipse 中编译、运行都正常,但是如果用maven的打包命令 mvn clean package 进行打包时会发现有类型错误

java定义受限制的类型参数操作

主要介绍了java定义受限制的类型参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

android 多类型参数,Android的数据绑定-类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...

我正在使用Android Studio 2.0 Preview 4。我正在使用Android SDK工具25 rc1。 无论我清理/重建项目多少次,此错误仍然存在。 File-> Invalidate Caches并重新启动也不起作用。我无法运行最基本的数据绑定示例。build.gradle文件apply plugin: 'com.android.application'android {c...

weixin_28681379的博客 349

YOLO11实战 第056期-基于yolo11的无人机航拍铁路障碍物检测实战-数据集&源码&系统

召回率曲线帮助评估模型在目标检测任务中,检测到真正目标的能力。通过这条曲线,可以评估模型在目标检测任务中的整体性能,并找到合适的置信度阈值,以在精确率和召回率之间做出最佳平衡。PR曲线越接近右上角,模型性能越好,曲线下方的面积越大,说明模型在不同置信度下的。这条曲线显示了随着置信度的增加,每个类别的召回率先变化较小,然后在某个点之后迅速下降。通过这条曲线,可以选择合适的置信度阈值,以优化模型的检测结果,平衡精确率和召回率。曲线都显示了随着召回率的增加,精确度略有下降的趋势,但整体上精确度保持在很高的水平。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 158

android t类型参数,数据绑定Android – 类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...

我正在使用Android Studio 2.0 Preview 4.我在使用Android SDK工具25 rc1.无论我清理/重建项目多少次,此错误仍然存​​在. File->无效缓存和重新启动也不起作用.我无法运行最基本的数据绑定示例.build.gradle文件apply plugin: 'com.android.application'android {compileSdkVersi...

weixin_34083972的博客 354

老服务器焕新记:在Dell R730上折腾Nvidia K80显卡的完整记录(含Anaconda环境配置)

本文详细记录了在Dell R730服务器上为Nvidia K80计算卡安装驱动、配置CUDA及Anaconda环境的完整过程。文章重点解决了老旧硬件与CentOS 7系统的兼容性问题,提供了从BIOS设置、驱动版本精准匹配到Python机器学习环境搭建的实战指南,旨在帮助读者低成本挖掘旧服务器的GPU计算潜力。

weixin_29197835的博客 504

关于HC32F460 输出可调占空比PWM波遇到的问题记录

文章目录问题记录一、问题分析二、解决方法总结 问题记录 芯片:HC32F460系列 功能:PWM电机调速 最近产品开发,需要用到HC32的PWM输出来控制电机的转速。参考官方的例程很快就完成了相关的功能,但是,后面在测试,重复开关电机的时候,发现电机的转速时大时小。 一、问题分析 一开始,怀疑是相关寄存器的设置出错导致的问题。因此在设置PWM输出时加上LOG打印,上机测试并没有发现问题。 用示波器抓取波形,这是正常状态下的波形(上电默认配置成5kHz,70%占空比输出) 这是转速较小时的波形输出 .

Top0_0lll的博客 6165

Android 开发面试题集合整理(内含答案),android网络开发技术实战详解

1. DataBinding作用,实现一个MVVM 2. DataBinding使用的主要技术点,Java APT,观察者,注解等 3. DataBinding关键类 ActivityMainBindingImpl 具体实现了绑定 ViewDataBinding 持有activity或者fragment和View的引用,主要作用一次遍历View,实例化所有子View,并存储在数组中,这里解决了findviewbyid性能问题,同时为我们省去了findviewbyid的操作 BR 类似Android R文件

m0_65145113的博客 245

Hierarchical Flow Partition(Top-down&&Bottom-up)

hierarchy flow是将设计切分成多个block,分别处理单个block,然后完成后,将它们进行拼接以完成最终的chip。一般划分为三个阶段:chip planning;physical budget就是pin assignmenthierarchy flow实现的方法有两种,一种是top-down,另一种是bottom-up,无论是哪种,都是都要通过flatten的方法分别全局范围进行优化实现。

qq_39493558的博客 3072

jetpack之DataBinding原理简析

核心 核心在于自动生成的代码里面,位置在app/build/generated/data_binding…/…;一直到自动生成的代码里面 UI调用DataBindingUtil.setContentView ... lateinit var binding: ActivityMainBinding ... binding = DataBindingUtil.setContentVie...

snoto的专栏 603

Aurix TC3xx系列MCU DMA模块配置方法(二)

本文主要基于英飞凌Aurix TC3xx系列MCU,通过EB tresos配置工具,介绍DMA驱动模块的配置方法。

m0_38045338的博客 2850

YOLOv13优化Faster_Block:卷积(Partial Convolution)、多层感知机(MLP)结构和残差连接

Faster_Block 代表了现代深度学习中效率与性能平衡的一个典型案例。它通过部分卷积技术巧妙地减少了计算开销,同时通过精心设计的架构保持了强大的特征学习能力。这种设计思想对于移动端部署、实时应用和大规模模型训练都具有重要意义。 未来的发展方向可能包括更智能的动态分割策略、与新兴硬件的深度适配,以及与其他先进技术(如自注意力机制、神经架构搜索等)的结合。Faster_Block 的成功展示了在深度学习领域,创新往往来自于对问题本质的深刻理解和巧妙的工程实现。

FJN110的博客 427

Android-Jetpack笔记-DataBinding

DataBinding即数据绑定,可以实现数据和UI的双向绑定。数据改变时,驱动UI刷新;操作UI时,也可以同步给数据。通常在开发界面时,总有findViewById的重复工作,DataBinding可以免去这些操作。同时,DataBinding还可以直接在xml中绑定数据,免去类似setText的操作,让数据来驱动UI刷新。 Jetpack笔记代码 使用 在app/build.gradle中开启...

哈利迪 409

Aurix TC3xx系列MCU ADC模块简介(一)

简单介绍英飞凌Aurix TC3xx系列单片机ADC模块的特点及内部结构。

m0_38045338的博客 6361

简单使用DataBinding

2016年安卓 流行技术 DataBinding

京湘玉 的博客 368

【史上最全面esp32教程】oled显示篇

esp32-arduino Oled屏幕的使用

m0_62599305的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java: 不兼容的类型: 推论变量T具有不兼容的限制范围

解决 Java 编译错误:不兼容的类型推论变量问题 这个错误的根本原因是 Java 的泛型类型推断机制无法正确识别泛型参数的类型。具体来说,当泛型方法的参数和返回值之间存在复杂的类型关系时,编译器可能无法正确推断出泛型参数的具体类型。

weixin_73924918的博客 885

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java不兼容的类型_java: 不兼容的类型: 推论变量T具有不兼容的限制范围

ResultVOresultVO=newResultVO();ProductVOproductVO=newProductVO();ProductInfoVOproductInfoVO=newProductInfoVO();productVO.setProductVOList(Arrays.asList(productInfoVO));resultVO.setDate(Arr...

weixin_39828960的博客 5519

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

受限类型参数( 推论变量T具有不兼容的上限)

public class EnumUtil { public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass) { for (T each: enumClass.getEnumConstants()) { if (code.eq...

leifei2012的博客 7429

Android studio升级到2021、gradle使用7+ 版本、切换至Androidx出现的问题

启用非传递性 R 类 (non-transitive R-class) 后,您应用中的 R 类将只会包含在子项目中声明的资源,依赖项中的资源会被排除在外。时无法找到子模块的r资源,也就是说我并没有发现R资源文件合并到主模块中,也无法在build的生成目录下找到r文件。解决:这里是我项目中的colors.xml 中没有配置color 相关的资源数据,这是纯xml报错了,没改正过来。我的环境的中的gradle的版本是7+ ,在主模块依赖子模块后,发现主模块使用。发现多个模块的资源文件id无法合并到主模块中。

superzhang6666的博客 6321

Android 支持库迁移到AndroidX,详细的Android学习指南

各行各样都会淘汰一些能力差的,不仅仅是IT这个行业,所以,不要被程序猿是吃青春饭等等这类话题所吓倒,也不要觉得,找到一份工作,就享受安逸的生活,你在安逸的同时,别人正在奋力的向前跑,这样与别人的差距也就会越来越遥远,加油,希望,我们每一个人,成为更好的自己。

m0_60229361的博客 1433

Android编译优化之Jetifier优化

本文字数:9048字预计阅读时间:40分钟在狐友项目的编译优化中,我们发现在 BuildAnalyzer 中有明确的 Warnings 提示,告知项目可以进行 Jetifier 优化。Jetifier是之前项目进行AndroidX迁移时引入的插件,它能辅助迁移三方库到AndroidX。Jetpack套件能够帮助你更轻松的搭建高质量的APP,它包括了依赖库、工具和指导。它通过最佳实践、模...

SOHU_TECH的博客 4544
上一篇: AS右侧的Gradle一栏只有Dependencies,不显示其他Tasks
下一篇: Execution failed for task ‘:app:compileDebugJavaWithJavac‘. > javax/xml/bind/JAXBExcept
侯斯特
博客等级 码龄11年 3粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值