Android中android.content.res.Resources$NotFoundException的问题

最近在调试程序的时候发现一个比较诡异的问题。

E  FATAL EXCEPTION: main
Process: com.eathemeat.justplayer, PID: 22047
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.eathemeat.justplayer/com.eathemeat.justplayer.play.PlayActivity}: android.view.InflateException: Binary XML file line #82 in com.eathemeat.justplayer:layout/activity_play: Binary XML file line #82 in com.eathemeat.justplayer:layout/activity_play: Error inflating class com.eathemeat.widget.slide.NiftySliderat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4034)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4187)at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:99)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2632)at android.os.Handler.dispatchMessage(Handler.java:106)at android.os.Looper.loopOnce(Looper.java:222)at android.os.Looper.loop(Looper.java:314)at android.app.ActivityThread.main(ActivityThread.java:8690)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:565)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
Caused by: android.view.InflateException: Binary XML file line #82 in com.eathemeat.justplayer:layout/activity_play: Binary XML file line #82 in com.eathemeat.justplayer:layout/activity_play: Error inflating class com.eathemeat.widget.slide.NiftySlider
Caused by: android.view.InflateException: Binary XML file line #82 in com.eathemeat.justplayer:layout/activity_play: Error inflating class com.eathemeat.widget.slide.NiftySlider
Caused by: java.lang.reflect.InvocationTargetExceptionat java.lang.reflect.Constructor.newInstance0(Native Method)at java.lang.reflect.Constructor.newInstance(Constructor.java:343)at android.view.LayoutInflater.createView(LayoutInflater.java:879)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1035)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:986)at android.view.LayoutInflater.rInflate(LayoutInflater.java:1165)at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1126)at android.view.LayoutInflater.rInflate(LayoutInflater.java:1168)at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1126)at android.view.LayoutInflater.inflate(LayoutInflater.java:707)at android.view.LayoutInflater.inflate(LayoutInflater.java:545)at com.eathemeat.justplayer.databinding.ActivityPlayBinding.inflate(ActivityPlayBinding.java:78)at com.eathemeat.justplayer.databinding.ActivityPlayBinding.inflate(ActivityPlayBinding.java:72)at com.eathemeat.justplayer.play.PlayActivity.onCreate(PlayActivity.kt:43)at android.app.Activity.performCreate(Activity.java:8886)at android.app.Activity.performCreate(Activity.java:8851)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1470)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4016)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4187)at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:99)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2632)at android.os.Handler.dispatchMessage(Handler.java:106)at android.os.Looper.loopOnce(Looper.java:222)at android.os.Looper.loop(Looper.java:314)at android.app.ActivityThread.main(ActivityThread.java:8690)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:565)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
Caused by: android.content.res.Resources$NotFoundException: File res/color/default_track_color.xml from ComplexColor resource ID #0x7f050035at android.content.res.ResourcesImpl.loadComplexColorForCookie(ResourcesImpl.java:1286)at android.content.res.ResourcesImpl.loadComplexColorFromName(ResourcesImpl.java:1112)at android.content.res.ResourcesImpl.loadColorStateList(ResourcesImpl.java:1191)at android.content.res.Resources.getColorStateList(Resources.java:1195)at androidx.core.content.res.ResourcesCompat$Api23Impl.getColorStateList(ResourcesCompat.java:687)at androidx.core.content.res.ResourcesCompat.getColorStateList(ResourcesCompat.java:246)at androidx.core.content.ContextCompat.getColorStateList(ContextCompat.java:508)at androidx.appcompat.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:48)at com.eathemeat.widget.slide.AbsSlider.processAttributes(AbsSlide.kt:292)at com.eathemeat.widget.slide.AbsSlider.<init>(AbsSlide.kt:243)at com.eathemeat.widget.slide.NiftySlider.<init>(NiftySlider.kt:16)at com.eathemeat.widget.slide.NiftySlider.<init>(NiftySlider.kt:15)at com.eathemeat.widget.slide.NiftySlider.<init>(Unknown Source:11)... 30 more
Caused by: java.lang.UnsupportedOperationException: Can't convert value at index 0 to color: type=0x1, theme={InheritanceMap=[id=0x7f10022bcom.eathemeat.justplayer:style/Theme.JustPlayer, id=0x7f10025acom.eathemeat.justplayer:style/Theme.MaterialComponents.DayNight.NoActionBar.Bridge, id=0x7f100275com.eathemeat.justplayer:style/Theme.MaterialComponents.NoActionBar.Bridge, id=0x7f100249com.eathemeat.justplayer:style/Theme.MaterialComponents.Bridge, id=0x7f100066com.eathemeat.justplayer:style/Base.Theme.MaterialComponents.Bridge, id=0x7f100092com.eathemeat.justplayer:style/Base.V14.Theme.MaterialComponents.Bridge, id=0x7f10013ccom.eathemeat.justplayer:style/Platform.MaterialComponents, id=0x7f10020fcom.eathemeat.justplayer:style/Theme.AppCompat, id=0x7f10004bcom.eathemeat.justplayer:style/Base.Theme.AppCompat, id=0x7f1000b8com.eathemeat.justplayer:style/Base.V28.Theme.AppCompat, id=0x7f1000b5com.eathemeat.justplayer:style/Base.V26.Theme.AppCompat, id=0x7f1000afcom.eathemeat.justplayer:style/Base.V23.Theme.AppCompat, id=0x7f1000adcom.eathemeat.justplayer:style/Base.V22.Theme.AppCompat, id=0x7f1000a1com.eathemeat.justplayer:style/Base.V21.Theme.AppCompat, id=0x7f1000bacom.eathemeat.justplayer:style/Base.V7.Theme.AppCompat, id=0x7f10013acom.eathemeat.justplayer:style/Platform.AppCompat, id=0x7f100145com.eathemeat.justplayer:style/Platform.V25.AppCompat, id=0x103022eandroid:style/Theme.Material.NoActionBar, id=0x1030224android:style/Theme.Material, id=0x1030005android:style/Theme], Themes=[com.eathemeat.justplayer:style/Theme.JustPlayer, forced, com.eathemeat.justplayer:style/Theme.AppCompat.Empty, forced, android:style/Theme.DeviceDefault.Light.DarkActionBar, forced]}at android.content.res.TypedArray.getColor(TypedArray.java:538)at android.content.res.ColorStateList.inflate(ColorStateList.java:366)at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:296)at android.content.res.ResourcesImpl.loadComplexColorForCookie(ResourcesImpl.java:1279)... 42 more

原因是:android.content.res.Resources$NotFoundException: File res/color/default_track_color.xml from ComplexColor resource ID #0x7f050035这个资源找不到,这个资源是在一个UI控件的aar中,然后去看了下aar和apk中其实都是有这个xml的文件的。

解决:在网上找了很多的资料,有很多的原因:

  • android问题的(查了下源码,在找xml文件和解析的时候出现错误都会包这个问题)
  • 打包问题,在apk和aar中都有这个文件。排除
  • android版本问题,有说是api24以下有getcolorstatelist的时候会出现这类问题。

搞了很久,还没没有办法从log上定位问题的原因。于是从自身出发,在这文件中查询问题:

试了很多的方法,最终定位问题:

//之前的代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:color="@attr/colorPrimary" android:state_enabled="true" /><item android:alpha="0.32" android:color="@android:color/black" />
</selector>//修改后的代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:color="?attr/colorPrimary" android:state_enabled="true" /><item android:alpha="0.32" android:color="@android:color/black" />
</selector>

根本原因就是@和?的差别。在解析xml的时候由于无法定位主题中

@代表引用资源
 ? 代表引用主题属性

这2者会比较容易搞错。但是在lint中并不会检查这个问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已解决java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underly,亲测有效

文章目录 问题分析报错原因解决思路解决方法1. 添加 JDBC 驱动程序到类路径2. 检查数据库连接配置3. 检查版本兼容性4. 检查安全设置5. 清理和重建项目6. 查看日志和异常堆栈 注意事项 java.sql.SQLNonTransientConnectionException: Cannot load connection class because of …

实现桌面动态壁纸(二)

目录 前言 一、关于 WorkerW 工作区窗口 二、关于窗口关系 2.1 窗口以及窗口隶属关系 2.2 桌面管理层窗口组分简析 2.3 厘清两个概念的区别 2.4 关于设置父窗口 三、编写代码以供在 Vista 上实现 3.1 方法二&#xff1a;子类化并自绘窗口背景 四、初步分析桌面管理层…

服务器安装多个Tomcat

服务器安装多个Tomcat 因为申请了一个域名&#xff0c;然后想设置一个二级域名&#xff0c;让不同的二级域名访问到不同的项目&#xff0c;例如blog.booleandev.xyz访问到博客项目&#xff0c;www.booleandev.xyz访问到主页&#xff0c;网上找了找资料&#xff0c;发现一般是使…

STM32的SPI接口详解

目录 1.SPI简介 2.SPI工作原理 3.SPI时序 3.1 CPOL&#xff08;Clock Polarity&#xff0c;时钟极性&#xff09;&#xff1a; 3.2 CPHA&#xff08;Clock Phase&#xff0c;时钟相位&#xff09;&#xff1a; 3.3 四种工作模式 4.相关代码 4.1使能片选信号 4.2使能通…

SQL注入如何判断数据库类型

前言 在进行SQL注入之前&#xff0c;首先应该判断数据库的类型&#xff0c;不同的数据库在处理一些函数的时候会有一些微妙的差别&#xff0c;只有判断出是哪种数据库类型&#xff0c;这样才能根据数据库的类型选择合适的函数&#xff0c;更容易实现SQL注入。 # 前端与数据库…

初步理解三__《面向互联网大数据的威胁情报 并行挖掘技术研究》

初步理解三 5类战术标签 gtp 收集开源的网络安全报告并将其转化为统一的文本格式&#xff0c;并且标注了5类战术标签是一个涉及到数据处理和分类的复杂任务。以下是一种可能的处理方法&#xff1a; 数据收集和整合&#xff1a; 使用网络爬虫或API访问工具收集开源的网络安全…

收银系统源代码-收银端UI风格

智慧新零售收银系统是一套线下线上一体化收银系统&#xff0c;给商户提供含线下收银称重、线上商城、精细化会员管理、ERP进销存、丰富营销活动、移动店务助手等一体化的解决方案。 如Windows版收银&#xff08;exe安装包&#xff09;、安卓版收银&#xff08;apk安装包&#…

什么是 YAML?了解 YAML 语法与最佳实践

什么是 YAML YAML 是 "YAML Aint Markup Language" 的缩写&#xff0c;这是一种用于数据序列化的基于文本的标记语言。 YAML 的用途 YAML (YAML Aint Markup Language) 是一种人类可读的数据序列化格式&#xff0c;主要用于以下目的&#xff1a; 作为配置文件格式…

C++:C++入门基础|命名空间|输入输出

欢迎来到HarperLee的学习笔记&#xff01; 博主主页传送门&#xff1a; HarperLee的博客主页! 想要一起进步的uu来后台哦&#xff01; 一、什么是C? 在此之前&#xff0c;我们所学习的C语言是一种结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&a…

25.无源蜂鸣器驱动设计

相对于有源蜂鸣器&#xff0c;无源蜂鸣器的成本更低&#xff0c;声音频率可控。而有源蜂鸣器因其内部 自带振荡源&#xff0c;只要加上适当的直流电源即可发声&#xff0c;程序控制较为方便。 &#xff08;1&#xff09;设计定义&#xff1a;设计一个无源蜂鸣器的驱动程序&…

二阶线性微分方程

假设一个质量 m 连接在弹簧和阻尼器上&#xff0c;系统受到外力 F(t) 的作用。设 x(t) 为质量的位移&#xff0c;系统的运动方程可以用牛顿第二定律表示为&#xff1a; 这是一个典型的二阶线性非齐次微分方程&#xff1a;其中&#xff1a; m 是质量&#xff08;Fma&#xff09…

调度的艺术:Eureka在分布式资源调度中的妙用

调度的艺术&#xff1a;Eureka在分布式资源调度中的妙用 引言 在微服务架构中&#xff0c;服务的分布式资源调度对于确保系统高效运行至关重要。Eureka作为Netflix开源的服务发现框架&#xff0c;虽然本身不直接提供资源调度功能&#xff0c;但可以与其他工具和策略结合使用&…

蓝桥杯备赛攻略(怒刷5个月拿省一)

十五届蓝桥杯结束&#xff0c;up也在这次比赛中获得了不错的成绩&#xff0c;为了帮助大家在25年蓝桥杯上获得好的成绩&#xff0c;我将根据今年的经验写一份蓝桥杯的备赛攻略&#xff0c;希望能帮到大家。 参赛准备 蓝桥杯算法赛必须指定一个编程语言赛道报名&#xff0c;也就…

【vueUse库Watch模块各函数简介及使用方法--下篇】

vueUse库是一个专门为Vue打造的工具库,提供了丰富的功能,包括监听页面元素的各种行为以及调用浏览器提供的各种能力等。其中的Browser模块包含了一些实用的函数,以下是这些函数的简介和使用方法: vueUse库Sensors模块各函数简介及使用方法 vueUseWatch函数1. watchImmedia…

Access系统开发必备技巧:轻松调整应用程序标题,提升用户体验!

Hi~ 大家好久不见呀&#xff01; 一直忙&#xff0c;但不知道在忙啥&#xff0c;好多事情都落下了&#xff0c;ERP的文章最近也没有时间更新&#xff0c;接下去我还在考虑弄个直播&#xff0c;不知道大家有没有什么想了解的&#xff0c;大家给我留言&#xff0c;直播的时候给…

aspose实现水印功能

文章目录 aspose给pdf添加水印aspose给word添加水印aspose给excel添加水印aspose给ppt添加水印aspose给图片添加水印 其他官网文档word水印(java)文档 客户要做水印功能&#xff0c;要求支持pdf&#xff0c;word&#xff0c;excel&#xff0c;ppt&#xff0c;图片等。 那么用as…

vue学习day02-Vue指令-v-html、v-show与v-if、v-else与v-else-if、v-on、v-bind、v-for、v-model

6、Vue指令 指令&#xff1a;带有v-前缀的特殊标签属性 &#xff08;1&#xff09;v-html 作用&#xff1a;设置元素的innerHTML 语法&#xff1a;v-html“表达式” 示例&#xff1a; 提供一个地址&#xff0c;这里是百度的地址&#xff0c;通过v-html渲染 结果&#xff…

怎么将图片旋转30度?旋转图片的几种方法推荐

怎么将图片旋转30度&#xff1f;在创作过程中&#xff0c;我们常常需要处理图片的镜像效果&#xff0c;确保其视觉效果和构图都达到最佳状态。镜像效果的合理运用不仅可以解决视觉单调的问题&#xff0c;还能在艺术作品中吸引观者的注意力。此外&#xff0c;镜像可以有效地调整…

大数据之Hadoop平台的搭建

实验环境 三台虚拟机 master slave1 slave2 服务器集群单节点&#xff0c;机器最低配置&#xff1a;双核 CPU、8GB 内存、100G 硬盘运行环境CentOS 7.4服务和组件服务和组件根据实验需求安装 1实验过程 1.1实验任务一&#xff1a;配置 Linux 系统基础环境 1.1.1步骤一&a…

YModem在Android上的实现

&#xff08;一&#xff09;参考文献 【安卓相关】蓝牙基于Ymodem协议发送bin文件&#xff0c;对硬件设备进行升级。 - 简书当Android BLE遇上YModem - 简书 &#xff08;二&#xff09;收发机制 基于我们具体的需求&#xff0c;在原有的基础上加了一下前后的处理。 * MY YMO…