标签:
由于项目需要实现在线音视频交互,引入了版本较新的libjingle库,一番编码之后,编译通过,可是运行时就坑爹了,这个包里的类统统找不到,反编译了apk之后发现原来这个库里的内容根本没被编译进classes.dex中。这是为什么呢?走了一番弯路之后发现,原来是这个包的编译jdk为1.7。而我的eclipse编译jdk为1.6。低版本jdk编译的工程无法集成高版本jdk编译的库。看来只能升级eclipse和adt来解决了。
为什么会出现上述情况?大概研究了一下。不同版本jdk编译出来的class文件格式可能存在差异,如果高版本jdk编译的class运行在低版本jvm之上,会出现无法解析高版本格式的问题。所以发现这种版本差异的时候直接不处理。其实这很合理,但是我觉得eclipse在编译时出现这种情况应该给报个错啊,你啥都不说,到时候程序缺胳膊少腿那不是坑么。。
标签:
原文地址:http://www.cnblogs.com/sylva/p/4729101.html