java.lang.NoClassDefFoundError: net.youmi.android.AdManager

来源:互联网 发布:淘宝网店推广论文 编辑:程序博客网 时间:2024/04/30 01:09

关于java.lang.NoClassDefFoundError:net.youmi.android.AdManager这个问题的解决方法,编译时是正常,运行时就报这个错误。

为了解决这个问题真是花了几天时间啊,终于让我找到了原因。引起这个问题可能是因为引用第三方jar包使用的jdk版本本地的jdk版本高

例如,我本地的jdk是1.6的,导入youmi v5.3.3的sdk版本是就会报java.lang.NoClassDefFoundError:net.youmi.android.AdManager。之前一直被这个问题困扰,皇天不负有心人啊,终于让我给找到原因了,就是jdk版本不同引起的,v5.3.3使用jdk1.7编译的,而我本地jdk是1.6,所以当我导入v5.3.3的sdk时就是一直报java.lang.NoClassDefFoundError:net.youmi.android.AdManager。

解决方法

就是找到他们用1.6的jdk编译的sdk,或者升级自己的开发环境如eclipse的ADT,以及jdk到1.7。而我选择的是用他们1.6的jdk的版本v5.1.1,有兴趣的同学可以去下载这两个版本的sdk比较一下就明白了.至于怎么查看jar包中的jdk版本,请看下面提供的方法

  • 一种是用cmd指令的方式
    javap -verbose classname
    会看到
    minor version: 0
    major version: 51
    这个两行提示:其中51就对应jdk的版本号,在表中51对应的就是1.7的jdk.

  • 另一种是直接打开jar包中.class 文件用十六进制查看,开头会有如下格式的数字.CA FE BA BE 00 00 00 33,其中33就是对应的版本号,不过是十六进制的转化为十进制即为51,跟上一种得到的值是一样的。

要查表的话,请看下面的链接

如何查看一个jar文件是用什么版本jdk编译的?
JDK Class 版本识别表

0 0
原创粉丝点击