今天在弄一个程序的时候,需要引入第三方的一个jar包,但是在运行的时候找不到第3方的类java.lang.NoClassDefFoundError,。但是编译完全没有任何问题,APK文件可以生产,但是运行时报错。
解决方法,把需要的jar包放入src目录中,然后再Library中右键Build Path->Config Build Paht->add external jars ,这里选择的jar为咱们刚刚放入的src中的jar包,然后OK再运行就没有问题。
主要分析了一下原因(不是很对),我们在生成apk程序的时候,一般会把资源文件res及类文件classes.dex(类文件打包了),还有主配置文件等包含进入,但是并不包含包含android.jar之类的系统jar包,我们在eclispe中建立android工程需要这个android.jar是因为我们的程序需要android中提供的相关类,但是在apk运行在手机里时已经有这个环境了,同时源码中已经包含了所有的类,源码编译时都会提供的。所以我们在引用外部jar的时候在eclipse中编译他通过路径可以找到里面相关的类,但是一运行在手机上他就会找不到,不知道分析的对不对。语言表达能力不行。
我在网上找了一下相关资料,貌似有用的不是狠多,但是有一位说他也解决了,但是我没试他的方法,我按照我自己的方式解决了就好了。
下面是他的方法。
有些android项目要引入第三方jar包,当你配置好后,项目没有报什么错误,但是当运行了之后,总是会报找不到类即java.lang.noclassdeffounderror的错误,今天在写一个项目的时候再次遇到了,盘弄了很久之后终于解决了,给大家参考一下,按照下面四个步骤引入jar包即可:
1、在Android项目根目录下新建一个lib文件夹,右键;
2、在libs目录上点右键,选Bulid path –> Use as source folder;
3、把你需要的导入的第三方Jar包复制进这个目录;
4、选中这个Jar包,右键->Build Path->Add to Build Path。
按照这四个步骤引入第三方jar包,以上说明的错误即可解决。