NoClassDefFondError在Android的...但类是在一个罐子包含在类路径(NoCl

2019-06-23 11:10发布

我正在开发Android中的应用程序。 它必须能的拍照,并发送照片的网页。 这是代码:

HttpClient httpclient = new DefaultHttpClient();

        HttpPost httpPost = new HttpPost("someurl");
        MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); //Here throws the exception
        multipartEntity.addPart("data",
                new InputStreamBody(
                        new ByteArrayInputStream(byteArray),
                        "image/png"));
        multipartEntity.addPart("caption", new StringBody(filename));

        httpPost.setEntity((HttpEntity) multipartEntity);

我在我的类路径(HttpClient的,Apache的mime4j核心,和的HttpCore httpmime)所需的库。 它不会显示在编译时间任何错误。 但是,当我运行该项目,它说:“java.lang.NoClassDefFoundError:org.apache.http.entity.mime.MultipartEntity”,但类并不在坛子里存在(在httpMime,完全一致)。 下面是完整的跟踪:

04-09 10:21:59.362: E/AndroidRuntime(10352): FATAL EXCEPTION: main
04-09 10:21:59.362: E/AndroidRuntime(10352): java.lang.NoClassDefFoundError: org.apache.http.entity.mime.MultipartEntity
04-09 10:21:59.362: E/AndroidRuntime(10352):    at     com.publidirecta.AppAzafata.IniciarGPSActivity2.enviarImagen(IniciarGPSActivity2.java:206)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at com.publidirecta.AppAzafata.IniciarGPSActivity2.onActivityResult(IniciarGPSActivity2.java:196)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at android.app.Activity.dispatchActivityResult(Activity.java:3908)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at android.app.ActivityThread.deliverResults(ActivityThread.java:2549)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:2595)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at android.app.ActivityThread.access$2000(ActivityThread.java:121)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:973)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at android.os.Looper.loop(Looper.java:130)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at  android.app.ActivityThread.main(ActivityThread.java:3701)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at java.lang.reflect.Method.invokeNative(Native Method)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at java.lang.reflect.Method.invoke(Method.java:507)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at     com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
04-09 10:21:59.362: E/AndroidRuntime(10352):    at dalvik.system.NativeStart.main(Native Method)

我试着与旧版本在这个任务中使用的所有罐子的,但它仍然没有工作。 这瓶也出现在Android项目的“引用的库”。

我用尽了一切。 任何人有任何想法,为什么出现这种情况? 我将要抛出自己的窗口。

先感谢您!

Answer 1:

你需要创建一个文件夹命名libs在您的项目,并复制引用罐子到这个文件夹。



Answer 2:

作为在自动更新的事情不成功,我下载了最新和最伟大的。 但MultipartEntity类不能被发现。 我把它重新添加到项目中。 我确信这是一个被称为“库”文件夹中 - 但没有运气。 安东的提示我检查项目的偏好。 项目属性 - > Java构建路径 - >在线订单和出口:确保Android的私家藏书检查。 (我检查了所有的)。 清理项目。 这个问题已经一去不复返了。



Answer 3:

太奇怪了,我的应用程序已经有文件“LIB”,并得到了这个崩溃。 我改名为“库”下面idiottiger的反应和它的工作。



Answer 4:

在Eclipse中的项目打开属性。 开放的订单和出口,确保你所需要的所有库中选择。 并单击项目>清洁。 最后,你的问题应该消失。



Answer 5:

我有今天这样的几个问题:

一)我把所有的jar文件到libs目录头也不回右键单击项目>构建路径>添加外部JAR>选择的jar文件。 然后去“订单和出口”,仍然有问题。 B)原来,HttpClient的-4.3.1.jar和httpmime-4.3.1.jar是不够的。 我需要添加的HttpCore-4.3.jar为好。

这摆脱了错误的! :DI花了今天将近4个小时试图解决这一问题:(



Answer 6:

我解决这样同一个问题:

  1. 在项目开放的pom.xml你面对这
    java.lang.NoClassDefFoundError:组织/阿帕奇/ HTTP /实体/ MIME / MultipartEntityBuilder

  2. 根据依赖关系,加上这段代码。

      <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.2</version> <scope>test</scope> </dependency> 
  3. 清理和重建的代码。

它将工作。



文章来源: NoClassDefFondError in Android… but the Class is in one jar included in the Classpath