安卓开发-Didn't find class XX.calss on path: DexPathList 错误

2023-10-17 11:59

本文主要是介绍安卓开发-Didn't find class XX.calss on path: DexPathList 错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天遇到了一个找不到类的错误,花了半天时间终于搞定了。解决的办法让我很无语,也让我觉得AndroidStudio更恶心了。

先来看错误的日志​:

04-18 10:02:27.570 24923-24923/com.eastsoft.android.esbic E/CrashReport: android.view.InflateException: Binary XML file line #62: Error inflating class com.example.administrator.demo.city.CityPicker at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.eastsoft.android.esbic.fragment.MainFragment$1.onClick(MainFragment.java:67) at android.view.View.performClick(View.java:4438) at android.view.View$PerformClick.run(View.java:18422) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.administrator.demo.city.CityPicker" on path: DexPathList[[zip file "/data/app/com.eastsoft.android.esbic-2.apk", zip file "/data/data/com.eastsoft.android.esbic/code_cache/secondary-dexes/com.eastsoft.android.esbic-2.apk.classes2.zip"],nativeLibraryDirectories=[/data/app-lib/com.eastsoft.android.esbic-2, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at java.lang.ClassLoader.loadClass(ClassLoader.java:457) at android.view.LayoutInflater.createView(LayoutInflater.java:559) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)  at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  at com.eastsoft.android.esbic.fragment.MainFragment$1.onClick(MainFragment.java:67)  at android.view.View.performClick(View.java:4438)  at android.view.View$PerformClick.run(View.java:18422)  at android.os.Handler.handleCallback(Handler.java:733)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:136)  at android.app.ActivityThread.main(ActivityThread.java:5017)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:515)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)  at dalvik.system.NativeStart.main(Native Method) 


出错的原因:

这里一定要交待一下出错的原因,因为我不知道其他人出现这个错误的原因是否和我相同,如果不同的话不知道同样的解决办法有没有用。

1、使用了别人的代码,里边包含了自定义的View,将xml中的包名修改成自己的(修改之前编译过一次,当然是报错的)。

排查:

先是在网上找,找来找去大概说的都是v4库的版本不一样,照着这个方法操作了之后却不好使。是因为方法过时了吗?还是说引起这个错误的原因有很多,但是错误日志都一个尿性?

找来找去找不到办法,只好自己排查。

​一、首先我们仔细看错误日志,这里有几个关键:

1、Didn't find class ​,说明没有找到类文件,但是我们的类明明在啊

2、​on path: DexPathList,说明是在这个名为“DexPathList”里找不到我们的类

所以我们要搞清楚​DexPathList是个什么玩意。然而我找了半天没找到,只好在项目里试着搜索相关的东西。

​二、找到项目里的关键文件

项目里到底哪里对这些文件进行了索引呢?因为我出错的原因是对目录的名字进行了修改,所以我想到的是去搜索原先项目的名字。搜出来真的好多啊。

不过我们在搜出来的东西的最下面,可以找到这么一个东西:

​这里有个dex项,很像是它哦,看看它是个什么东西。仔细看这东西的目录结构:

​从目录我们可以看出来这个东西是在项目目录的app/build/里面。既然是build的,那我们把这玩意删了会怎么样呢?试试:

编译后发现上面的LaunchActivity可以找到了,但是又出现一个DataManager找不到了。什么情况?

三、两个build​,解决问题

Android的项目目录里是有两个build文件夹的,一个是:项目目录/app/build,另一个是:项目目录/build。如果把这俩build同时删除呢?

事实证明好使了,所以解决方法就是把两个build都删掉,然后运行。同时也说明在提交代码的时候两个build是不应该提交的。

​再遇到类似的问题,不妨这么试试


http://www.taodudu.cc/news/show-7978723.html

相关文章:

  • Android运行AVD后爆:Failed to compile values file.怎么解决
  • 微信支付v3证书报错The `certs()` contains the merchant‘s certificate
  • Linux-world-2012-January-13(error: 'S3C24X0_GPIO' has no member named 'GPACON')
  • Samba使用smbpasswd实现user安全级别配置
  • 一次典型的php+MySQL手工注射
  • 洛谷P5410 【模板】扩展 KMP【捂着良心说真的很detailed,很久没这么认真了www】
  • html中video全属性详解,科技常识:详解Html5中video标签那些属性和方法
  • video 标签 各种属性及所有事件监听大全
  • HTML页面原生VIDEO标签隐藏下载按钮功能
  • 对video标签下载按钮隐藏等几点补充说明
  • 防止video视频被下载的几种处理办法
  • Ubuntu 拼音输入法不能正常使用的解决方案
  • 使用拼音写程序
  • Google搜索从入门到精通 v4.0【转】
  • 用于NLP的Python:使用Keras进行深度学习文本生成
  • 系列之1-神经网络的基本工作原理(转)
  • c语言安卓api,Android文本语音API开发教程
  • 0基础java初学者都能做的打字通小游戏? 内含源码解读和细致讲解!!
  • Pygame开发一个打字游戏
  • 优漫动游小白逆袭平面设计师
  • 【活动】你有创意我有奖!摹客X飞书2020产品设计大赛邀你来战
  • 程序员的在线开发工具
  • 资源save
  • 美术基础对于建模行业的作用体现在哪里?没学过画画的能不能做3D游戏建模
  • GUI(图形用户接口)
  • GUI编程(图形界面编程)
  • Android 移动开发 | 图形与图像处理--剖析三个绘图工具类--实现Android 机器人绘制案例
  • 0.1 用代码画画——搞艺术的学编程有啥用?
  • 毛球科技:区块链如何应对数字虚假信息威胁?
  • 私家云二代/比特米盒安装Armbian Blueseye到Emmc
  • 这篇关于安卓开发-Didn't find class XX.calss on path: DexPathList 错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/225229

    相关文章

    基于 Cursor 开发 Spring Boot 项目详细攻略

    《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

    SpringBoot 多环境开发实战(从配置、管理与控制)

    《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

    使用docker搭建嵌入式Linux开发环境

    《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

    深度解析Java @Serial 注解及常见错误案例

    《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

    Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

    《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

    Python实战之SEO优化自动化工具开发指南

    《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

    基于Java开发一个极简版敏感词检测工具

    《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

    SpringBoot3匹配Mybatis3的错误与解决方案

    《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

    Python开发简易网络服务器的示例详解(新手入门)

    《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

    nginx配置错误日志的实现步骤

    《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把