美文网首页
2018-09-26 NoClassDefFoundError

2018-09-26 NoClassDefFoundError

作者: 冰封的鸢尾花 | 来源:发表于2018-09-26 16:37 被阅读5次

    最近遇到的一个困扰了我一段时间的bug。这个bug的起因是我当前项目中使用了一段摄像头扫描框的代码,而我每次点击启动摄像头按钮是程序崩溃报错,错误的具体信息是:

    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mining.app.zxing.view.ViewfinderView" on path: DexPathList[[zip file "/data/app/包名-1/base.apk", zip file "/data/app/包名-1/split_lib_dependencies_apk.apk", zip file

    其实关于这个异常我之前有过了解,还专门和ClassNotFound异常做过比较。
    NoClassDefFoundError这个异常从字面意思来说就是在程序中使用了未定义的class文件,也就是在程序编译打包的阶段,这个class没有被编译,所以在调用到这个class的时候就会出现错误。于是我以为是我引用的jar包没有被打包进去,遂百度。尝试了许多种方法,包括将app下的build删除,将.gradel删除等等方法,结果都没有用。
    虽然这些解决方案对我来说没有起作用,但是我还是从这些方法中得到了另一个思路,那就是我一直以为是我的jar包错了,而没有想是不是代码错误,而编译器没有提示错误(android studio经常会出现这个问题)。后来我仔细看了出问题的文件,发现其实一个自定义的view,那么我想既然自定义了view便一定有使用的地方。于是我回头看了布局文件,找到了这个view被使用的地方,果然发现了问题。由于我的布局是直接复制之前项目的,所以路径还是之前项目的路径,而由于我的不仔细加上IDE没有提示导致这个布局是无法被加载的。但是其实这个class文件有被编译,只是我布局文件中引用的不对,所以会报NoClassDefFoundError这个错误。
    以后一定要仔细仔细再仔细。。。

    相关文章

      网友评论

          本文标题:2018-09-26 NoClassDefFoundError

          本文链接:https://www.haomeiwen.com/subject/kccjoftx.html