2013-07-10 3 views
2

Чтобы исправить следующие ошибки meassageНевозможно выполнить Dex: Несколько DEX файлы определяют Lorg/springframework/HTTP/HttpEntity

java.lang.NoClassDefFoundError: org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter

Я добавил «spring-web-3.0.2.jar», чтобы создать путь к Android-приложению и выбрал этот jar в «order and Export» в JavaBuildpath. (Properties-> buildpath-> order and Export).

После добавления этого perticular (весна-веб-3.0.2.jar) Это фиксированное «java.lang.NoClassDefFoundError», но он бросает ошибку при попытке благородных предшественников запустить мое приложение.

Dex Loader] Невозможно выполнить dex: несколько файлов dex определяют Lorg/springframework/http/HttpEntity; Не удалось выполнить преобразование в формат Dalvik: невозможно выполнить dex: несколько файлов dex определяют Lorg/springframework/http/HttpEntity;

Что я делаю Worng? Это из-за многократной банки, содержащей Lorg/springframework/http/HttpEntity.

Follwing - это банка, которую я добавил в свой проект.

  1. простой XML-2,7
  2. весна-андроида-Auth-1.0.1.RELEASE
  3. весна-андроид-ядро-1.0.1.RELEASE
  4. весна-андроид-отдых-template- 1.0.1.RELEASE
  5. весна-веб-3.0.2.RELEASE

Как я могу решить эту проблему? Любая помощь очень appricated.

ответ

2

Я думаю, что spring-web-3.0.2.RELEASE не требуется, попробуйте удалить его и снова проверить. Эта ошибка связана с тем, что виртуальная машина Dalvik обнаружила два класса с одинаковым именем и пакетом.

org.springframework.http.HttpEntity существует в Spring Android и в Spring-web.

+0

Спасибо за ваше предложение, которое я пытался до того же, это дает мне класс не ошибка, о которой я упоминал в вопросах. Если я добавлю, это дает мне следующую ошибку. «Dex Loader] Невозможно выполнить dex: несколько файлов dex определяют Lorg/springframework/http/HttpEntity; сбой преобразования в формат Dalvik: невозможно выполнить dex: несколько файлов dex определяют Lorg/springframework/http/HttpEntity; – user2559548

2

Посмотрите на этот пост, по-видимому, связано, в частности, ответ Роя

http://forum.spring.io/forum/spring-projects/android/743289-importing-android-spring-with-gradle-cause-error-mutiple-dex-files

The Spring for Android rest-template and core artifacts do not have a dependency on spring core or any Spring Framework library. However, the auth dependency does, along with Spring Social. You can exclude globally like the following, then you don't have to repeat the exclusion for each dependency. I also agree about the frustration with the packagingOptions in the newer Android Gradle plugin versions. It really should support a wildcard so you don't have to declare all those individually. Hopefully, Google will add that in the future. Code:

configurations.compile { 
     exclude module: 'spring-core' 
     exclude module: 'spring-web' 
     exclude module: 'commons-logging' 
    } 
Смежные вопросы