解决Eclipse add external jars运行出现java.lang.NoClassDefFoundError的方法

最近发现一个问题,有时候对一个Android项目反复的Add jar和remove jar,发现编译可以通过,但是运行起来当应用到外部jar的对象时,会抛出java.lang.NoClassDefFoundError异常。导致程序奔溃。

查看项目属性,发现java build path里比正常的项目少了Android Dependencies这一项:

通过和丢失之前的项目进行比对,发现差别在于工程根目录下的.classpath文件,<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>这里的exported变成了false,于是把这里改回true,然后重新关闭和打开工程,发现就ok了。

另外如果你导入的jar包不是放在工程目录的\libs目录下,也会有这个问题,请把jar包放到\libs目录下,否则虽然能编译通过,但是因为打包的时候没有把jar打包进去,所以导致上面的那个异常。Eclipse在编译的时候会自动把\libs目录下的文件打包进去。

这个问题以前没怎么出现过,不知道是不是和Eclipse版本和ADT版本有关系。

(0)

相关推荐

  • java.lang.NoClassDefFoundError错误解决办法

    java.lang.NoClassDefFoundError错误解决办法 前言 在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的.我们往往花费时间去不断尝试一些其他的方法去解决这

  • Android 出现:java.lang.NoClassDefFoundError...错误解决办法

    今天测试突然给我说我写的XX界面一点app就crash了! 纳尼,我肯定表示不服啊!怎么可能出现一点击就崩溃的情况呢,明明自己的测试了的! 然后我又用自己的测试机试了下没问题(Version:5.0.2),然后又使用crash的测试手机(Version:4.4),乖乖,居然是4.4才会出现的情况!(4.4以下没有验证哈!可能都会吧!!!) log显示: W/System.err: java.lang.NoClassDefFoundError: android/os/PersistableBund

  • Exception in thread main java.lang.NoClassDefFoundError错误解决方法

    错误描述 javac helloworld.java能够通过.但是java helloworld出现错误: hadoop@xuwei-erplab:~/jarfile$ java HelloWorld Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/xuwei/HelloWorld) at java.lang.ClassLoader.defineClass1(N

  • 解决Eclipse add external jars运行出现java.lang.NoClassDefFoundError的方法

    最近发现一个问题,有时候对一个Android项目反复的Add jar和remove jar,发现编译可以通过,但是运行起来当应用到外部jar的对象时,会抛出java.lang.NoClassDefFoundError异常.导致程序奔溃. 查看项目属性,发现java build path里比正常的项目少了Android Dependencies这一项: 通过和丢失之前的项目进行比对,发现差别在于工程根目录下的.classpath文件,<classpathentry exported="tru

  • maven引入本地jar包运行报错java.lang.NoClassDefFoundError解决

    目录 正文 maven引入本地jar的示例 配置maven将本地jar打入package中 maven打包知识分享 scope详解 正文 下文笔者讲述maven引入本地jar包时,运行报错"java.lang.NoClassDefFoundError"的处理方法分享,如下所示 今天在编写maven项目    导入本地jar包    部署到服务器上找不到包  报错信息如:java.lang.NoClassDefFoundError那么如何解决呢?   这种问题是由于,本地jar包在打包的

  • Android Studio 升级到3.0 提示 java.lang.NoClassDefFoundError的解决方法

    解决方法 首先把方法写出来,起因和经过和原理写在后面,时间仓促的直接看解决方法吧. 一般出现这个错都是使用的provided导致的 例如,我的旧配置如下: Project build.gradle文件: buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.0.1' // need delete in gradle3.x version classpath 'com.neenbedankt.gradle.

  • 解决java.lang.NoClassDefFoundError: android.support.v4.animation.AnimatorCompatHelper问题

    在开发过程中,有的时候引入了多个三方库.在调用的时候会出现版本对应不上的原因.就会出现如标题的异常.解决的办法就是在你的build.gradle里面加入如下代码块: configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.supp

  • SpringBoot异常: nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext解决方案

    今天在使用SpringBoot创建了一个项目出现如下异常 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'documentationPluginsBootstrapper': Resolution of declared constructors on bean Class [springfox.documentation.spring.web.plugins.Docu

  • 解决启动Azkaban报错问题:java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmutableMap

    问题描述: 启动Azkaban报错: java.lang.NoSuchMethodError:com.google.common.collect.ImmutableMap.toImmutableMap 解决方法: 从报错信息来看,是找不到toImmutableMap这个方法.首先找到类ImmutableMap对应的Jar包为guava,然后在服务器查找这个Jar包: find / -name "guava*.jar" 发现除了Azkaban安装目录,其他程序目录下也有guava包.Az

  • 解决Eclipse的Servers视图中无法添加Tomcat6/Tomcat7的方法

    Eclipse的Servers视图中无法添加Tomcat6/Tomcat7的方法 引言: 在基于Eclipse的开发过程中,出现了无法在Eclipse中添加Tomcat的问题,经过从网上搜索之后,找到了答案. 问题的提出: 无法从以下方式,添加Tomcat服务器.  其中ServerName是被置为灰色的,无法编辑. 如何解决 1.  关闭Eclipse 2.  打开WorkSpace所在的位置. {workspace-directory}/.metadata/.plugins/org.ecli

随机推荐