NoClassDefFondError no Android… mas a classe está em um frasco incluído no Classpath
Estou desenvolvendo um aplicativo no Android. Tem que ser capaz de tirar uma foto e enviar essa foto para uma página da web. Este é o código:
<code>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); </code>
Eu tenho as bibliotecas necessárias no meu ClassPath (httpclient, apache-mime4j-core, httpcore e httpmime). Não mostra nenhum erro no tempo de compilação. mas, quando executo o projeto, ele diz "java.lang.NoClassDefFoundError: org.apache.http.entity.mime.MultipartEntity", mas essa classe DOES existe nos jars (em httpMime, exatamente). Aqui está o traço completo:
<code>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) </code>
Eu tentei com versões mais antigas de todos os jars usados nesta tarefa, mas ainda não funciona. Esses jars aparecem nas "Bibliotecas referenciadas" no projeto Android.
Eu tentei de tudo. Alguém tem alguma ideia de por que isso acontece? Estou prestes a me jogar pela janela.
Agradeço antecipadamente!