`
zhenzxie
  • 浏览: 68333 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android学习之路——10.NoClassDefFoundError

阅读更多
遇到NoClassDefFoundError问题,情景描述如下:
     在Eclipse里开发Android程序和java桌面程序,由于偷工减料的缘故,所以抽取了Android应用程序(B)和java桌面程序(C)中共同的部分另外建了一个工程(A)。然后问题就出现了。B引用了A(方法:build path --> project tab --> add project),写代码和编译都没问题,不会报错,可是当开始调试程序运行到使用A中的类的时候就会抛出java.lang.NoClassDefFoundError。
     是不是A中的代码未被打包到APK中去。尝试,把A工程导出jar文件,然后放到B工程中,然后再build path --> library tab --> add jar,然后重新运行,依旧抛出异常。
     google一下,解决访问大体是:把jar包所在文件夹改名为libs,然后clean,然后run。另外找到blog一篇:http://tools.android.com/recent/dealingwithdependenciesinandroidprojects 。再一次按照方法尝试,依旧是抛出异常。
     尝试,把A工程编译器版本改为6,然后导出jar包,放到B工程中的libs文件夹下,然后build path --> order and export tab --> 勾选Android Dependencies(这一步好像不用,请自行尝试),然后run,就好了。
     因为A中的代码也还在编写中,所以如果每次在A中添加,修改,删除代码之后,再导出jar,再放到B中,这样很麻烦。所以,最好还是B可以直接引用A。那我想既然导出jar包都可以了,那直接引用A应该也可以吧。故,先把刚刚放到B中libs文件夹下的jar去掉,然后build path --> project tab --> add project,然后build path --> order and export tab --> 勾选A(这步是需要的,原因不明),然后run,就好了。
    贴图:

   
   

     一言以蔽之,就是如果有NoClassDefFoundError问题,请看看是不是jar包没有放到Android工程下的libs文件夹下,顺便注意一下编译器版本的(对了,做完这些步骤可能需要clean一下)。LZ自己的问题已经解决,希望你们也可以解决这种问题。
  • 大小: 14.1 KB
  • 大小: 21.9 KB
2
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics