2014-05-20 2 views
7

Я пытаюсь добавить в внешнюю библиотеку classpath (this one). Как я это делаю: File -> Project Structure -> Dependencies tab -> Add file dependency. Это верно? Список библиотек Maven не имеет Xstream. И если я нажму add module dependency, список пуст.Android Studio. Невозможно включить внешнюю библиотеку правильно

Все, что мне нужно, это добавить 3 файла jar в classpath - xstream1.4.7.jar, xmlpull-1.1.3.1.jar и xpp3_min-1.1.4c. Поэтому я сделал это, как писал раньше. Дело в том, что после этого я могу включить эту библиотеку, и все кажется ОК. Но после запуска проекта есть ошибка:

Error:Execution failed for task ':gridview:dexDebug'. 
> com.android.ide.common.internal.LoggedErrorException: Failed to run command: 
    D:\adt-bundle-windows-x86_64-20140321\sdk\build-tools\android-4.4.2\dx.bat --dex --output D:\Mobile devices\Course Work\android studio\gridview\gridview\build\dex\debug D:\Mobile devices\Course Work\android studio\gridview\gridview\build\classes\debug D:\Mobile devices\Course Work\android studio\gridview\gridview\build\dependency-cache\debug D:\Mobile devices\Course Work\android studio\gridview\gridview\build\pre-dexed\debug\classes-80f8711ee653afcf7efe6b620bb026841cb6946a.jar D:\Mobile devices\Course Work\android studio\gridview\gridview\build\pre-dexed\debug\support-v4-19.1.0-269b660d78e582ad08c396ce1a171205a775b0a0.jar D:\Mobile devices\Course Work\android studio\gridview\gridview\build\pre-dexed\debug\xmlpull-1.1.3.1-e45616f42a2838037b23e662d2381fe8ba29f039.jar D:\Mobile devices\Course Work\android studio\gridview\gridview\build\pre-dexed\debug\xpp3_min-1.1.4c-26abc774a3b821df830ea21d4b6b0daf1ce5acb6.jar D:\Mobile devices\Course Work\android studio\gridview\gridview\build\pre-dexed\debug\xstream-1.4.7-12d1ec007d50d7a5412e6ce3abef54fbab1046d4.jar D:\Mobile devices\Course Work\android studio\gridview\gridview\build\pre-dexed\debug\xstream-benchmark-1.4.7-574037033c1552eddf3ff5624f95bc8d3d954d28.jar 
Error Code: 
    2 
Output: 
    UNEXPECTED TOP-LEVEL EXCEPTION: 
    com.android.dex.DexException: Multiple dex files define Lorg/xmlpull/v1/XmlPullParser; 
     at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) 
     at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) 
     at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) 
     at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) 
     at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 
     at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) 
     at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) 
     at com.android.dx.command.dexer.Main.run(Main.java:230) 
     at com.android.dx.command.dexer.Main.main(Main.java:199) 
     at com.android.dx.command.Main.main(Main.java:103) 

Кроме того, я проверил эту библиотеку в Intelij с общей Java, не андроид. И это сработало отлично. Поэтому я просто скопировал рабочий код в Android Studio от Intelij и эта ошибка возникает.

Вот код, где происходит эта ошибка (если необходимо):

FileReader reader = new FileReader("boards.xml"); // load file 
XStream xstream = new XStream(); 
xstream.processAnnotations(Boards.class); 
xstream.processAnnotations(IdBoards.class); 
Boards boards = (Boards) xstream.fromXML(reader); // parse xml into array list 

Так что вопрос Как добавлять внешние библиотеки правильно Android Studio? Или у probaby есть еще одна проблема? Спасибо за советы.

+1

Прошу исследовать ошибку «Несколько файлов dex files». Существует множество вопросов/ответов о переполнении стека, хотя большинство из них относятся к библиотеке поддержки. У вас есть класс, который включен из двух разных библиотек, которые не разрешены в этой сборке. –

ответ

5

xml pull parser является частью андроидного фреймворка, удалите xmlpull-1.1.3.1.jar и попробуйте. Это может сработать.

+0

Да, это помогло. Большое спасибо – AnZyuZya

3

Я установил его с помощью опции exclude в app/build.gradle, теперь он отлично работает.

dependencies { 
    ..... 
    compile ('com.thoughtworks.xstream:xstream:1.4.7'){ 
     exclude group: 'xmlpull' 
    } 
} 
0

Как добавлять внешние библиотеки в Android Studio:

  • изменения Project View из Android в Project.
  • добавить внешнюю библиотеку в каталог «libs» проекта , в который вы хотите поместить файл jar.
  • выберите «libs/xxx.jar» и щелкните правой кнопкой мыши, выберите «Добавить как library».

Затем проверьте зависимости от build.gradle, вы найдете банку файл успешно добавлен.

Смежные вопросы