安卓开发-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

    相关文章

    部署Vue项目到服务器后404错误的原因及解决方案

    《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

    Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

    《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

    解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

    《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

    在MySQL执行UPDATE语句时遇到的错误1175的解决方案

    《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

    SpringBoot中的404错误:原因、影响及解决策略

    《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

    基于Python开发PPTX压缩工具

    《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

    使用DeepSeek API 结合VSCode提升开发效率

    《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

    解读静态资源访问static-locations和static-path-pattern

    《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

    基于Python开发电脑定时关机工具

    《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

    Spring常见错误之Web嵌套对象校验失效解决办法

    《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去