一个java.lang.NoClassDefFoundError问题的解决
2016-11-26 19:58
323 查看
来源:
http://www.eoeandroid.com/thread-312955-1-1.html
昨天为一个报错java.lang.NoClassDefFoundError的问题折腾了一天,公司里面好几位大牛帮忙,都没有搞定。后来有个同事建议我用空的Activity替换,通过逆向反推的方法找到原因了。
我要做的这个apk是在另外一个项目上已经发放的apk,移植到新平台上后,编译没有问题,在机器上验证运行时,Log打印出java.lang.NoClassDefFoundError报错,提示其中一个Activity找不到。
明明Activity就在工程中,而且AndroidManifest.xml文件中也有注册,为什么说找不到。反复google、baidu,试过很多网页上介绍的办法,还是没能解决。
后来有个同事说,既然这个Activity找不到,就换一个吧,于是我创建一个空的Activity,修改了调用的地方,编译、运行,竟然可以。于是大致猜测到是这个Activity本身存在问题。
但是这个Activity代码太多了,谁知道具体哪个位置出问题了。仔细看打印信息,其中有一行绿色的提示(在红色的报错之前)让我知道问题出在哪里了:这个Activity 继承的一个接口没有解析出来。
去掉原Activity 中与这个接口相关的代码后,再次编译、运行,问题没有复现了。事后有一个负责中间层的同事回复我,那个找不到的接口在新平台上不存在——原来如此!
通过这件事,我发现:
1.Eclipse下的Log窗口的打印信息,不光要看红色的报错,绿色的打印信息有时候也有用的;
2.出现java.lang.NoClassDefFoundError报错,不一定是代码本身的问题,也有可能是外部环境的改变导致Activity生成失败.
http://www.eoeandroid.com/thread-312955-1-1.html
昨天为一个报错java.lang.NoClassDefFoundError的问题折腾了一天,公司里面好几位大牛帮忙,都没有搞定。后来有个同事建议我用空的Activity替换,通过逆向反推的方法找到原因了。
我要做的这个apk是在另外一个项目上已经发放的apk,移植到新平台上后,编译没有问题,在机器上验证运行时,Log打印出java.lang.NoClassDefFoundError报错,提示其中一个Activity找不到。
明明Activity就在工程中,而且AndroidManifest.xml文件中也有注册,为什么说找不到。反复google、baidu,试过很多网页上介绍的办法,还是没能解决。
后来有个同事说,既然这个Activity找不到,就换一个吧,于是我创建一个空的Activity,修改了调用的地方,编译、运行,竟然可以。于是大致猜测到是这个Activity本身存在问题。
但是这个Activity代码太多了,谁知道具体哪个位置出问题了。仔细看打印信息,其中有一行绿色的提示(在红色的报错之前)让我知道问题出在哪里了:这个Activity 继承的一个接口没有解析出来。
去掉原Activity 中与这个接口相关的代码后,再次编译、运行,问题没有复现了。事后有一个负责中间层的同事回复我,那个找不到的接口在新平台上不存在——原来如此!
通过这件事,我发现:
1.Eclipse下的Log窗口的打印信息,不光要看红色的报错,绿色的打印信息有时候也有用的;
2.出现java.lang.NoClassDefFoundError报错,不一定是代码本身的问题,也有可能是外部环境的改变导致Activity生成失败.
相关文章推荐
- 一个java.lang.IncompatibleClassChangeError的问题解决
- 使用网上流传的一个数据库连接池在Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
- 使用网上流传的一个数据库连接池在Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
- 使用网上流传的一个数据库连接池在Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
- 使用网上流传的一个数据库连接池在Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
- 一个Android应用开发菜鸟的成长之路——工作第一天:解决了java.lang.NoClassDefFoundError问题
- 使用网上流传的一个数据库连接池在Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
- JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决
- Invocation of init method failed; nested exception is java.lang.NoSuchMethodError:问题解决
- checkstyle问题:解决Got an exception - java.lang.RuntimeException: Unable to get class information for ***Exception
- 如何解决J2ME开发中遇到提示 ALERT: java/lang/ClassFormatError: Bad version information.的问题?
- 一个未解决的问题:java.lang.AbstractMethodError: oracle.jdbc.driver.OracleConnection.getHoldability()
- linux&UNIX下WebSphere数据源连接出现java.lang.UnsatisfiedLinkError: SQLConnect问题的解决方法
- 【原创】java.lang.ClassCastException异常问题解决
- 问题解决:java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getVariableResolver()Ljavax/servlet/jsp/el/VariableResolver;
- 一个properties文件读写组件类,解决java自带的properties文件处理薄弱问题
- Exception in thread "main" java.lang.NoClassDefFoundError 问题及其解决方法
- 教你解决问题:Compilation error java.lang.OutOfMemoryError
- XP bug 导致的java.lang.NoClassDefFoundError:javax/transaction/SystemException问题解决
- Hi!现在处理spring的一个问题java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool