--------------------------------------------------------
注意依赖包或者集成的接口的包需要引入到libs目录下,不要引入本地包,否则找不到类。
------------------------------------------------------------
昨天为一个报错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生成失败.
分享到:
相关推荐
该jar包解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException,亲测可用。
在jsp运行过程中,报错 java.lang.NoClassDefFoundError org.apache.xml.serializer.TreeWalker时的处理方法。
本文将深入探讨这个问题,特别是在Android环境中如何解决`java.lang.NoClassDefFoundError: android/os/PersistableBundle`这个特定错误。 `PersistableBundle`是Android 5.0(API Level 21)引入的一个新特性,...
运行Sqoop报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/avro/LogicalType,下载此资源放到Sqoop的lib目录下即可
对于开发过程中的其他常见错误,例如IDE报错、Maven编译错误或Java源码查看问题,开发者可以参考相关教程或在线资源,例如Stack Overflow,以获取解决方案。例如,IntelliJ IDEA中引入第三方jar包或查看Java源码时的...
标题中的“java.lang.NoClassDefFoundError: javax/tools/StandardJavaFile”是一个常见的Java运行时错误,它表示在类路径中找不到某个类的定义。这个错误通常发生在试图执行包含特定类的代码,但该类在运行时环境中...
flink-hadoop-compatibility_2.12-1.7.1.jar javax.ws.rs-api-2.0.1.jar jersey-common-2.27.jar ...Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
Caused by: java.lang.NoClassDefFoundError: com.sun.org.apache.xml.internal.resolver.CatalogManager at com.sun.xml.ws.util.xml.XmlUtil.createEntityResolver(XmlUtil.java:266) at org.jvnet.jax_ws_...
该开发包是解决 JavaMail 发送邮件报错:java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误 ava.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 使用方法: 将javaee.jar ...
java.lang.NoClassDefFoundError: org/springframework/beans/factory/BeanNameAware 1 2 根据错误加入 spring-beans-4.x.x.RELEASE.jar 1 2 接着报错 java.lang.NoClassDefFoundError: org/springframework/...
webservice CXF 报错:java.lang.NoClassDefFoundError: org/apache/neethi/builders/AssertionBuilder 需要用到此jar文件 通过apache官网可获得。 文件位置\apache-cxf-2.7.13\lib
解决方法 首先把方法写出来,起因和经过和原理写在后面,时间仓促的直接看解决方法吧。 一般出现这个错都是使用的provided导致的 例如,我的旧配置如下: Project build.gradle文件: buildscript { ...
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:...
java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/xml/stream/XMLEventFactory; at org.apache.poi.openxml4j.opc.internal.marshallers.PackagePropertiesMarshaller.(PackagePropertiesMarshaller...
项目工程中用到jdk1.6相关方法,可以使用,但是升级到jdk1.8以后,编译出现java.lang.NoClassDefFoundError: sun/io/CharToByteConverter错误,后经查询,是jdk1.8版本中已经从sun.io.*中进行去除。网上找来了相关...
开发工具 taglibs-standard-impl-1.2.5开发工具 taglibs-standard-impl-1.2.5开发工具 taglibs-standard-impl-1.2.5开发工具 taglibs-standard-impl-1.2.5开发工具 taglibs-standard-impl-1.2.5开发工具 taglibs-...
不然有以下报错java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/finder/ClassFinder$InfoBuildingVisitor,导入asm-3.3.jar,asm-commons-3.3,asm-tree-3.3.jar即可,压缩包里面有
springboot启动报错:java.lang.NoClassDefFoundError: org/springframework/transaction/ReactiveTransactionManager 不添加org.springframework.boot:spring-boot-starter-data-jpa:2.2.5.RELEASE,只有org....
javax.xml.bind.jar和三个sqljdbc4x.jar;实测可用。用于sqlserver连接和出现Java 9 及以上 eclipse 链接 SQL数据库 抛出 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 异常