Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio. Can't include external library properly

I'm trying to add to classpath external library (this one). The way I do it: File -> Project Structure -> Dependencies tab -> Add file dependency. Is that correct? Maven's list of libraries doesn't have Xstream. And if I click add module dependency the list is empty.

All I need is to add 3 jar files to classpath - xstream1.4.7.jar, xmlpull-1.1.3.1.jar and xpp3_min-1.1.4c. So I did it as wrote before. The thing is that after this I can include this library and everything seems Ok. But after running the project there is an error:

    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)

Moreover, I have tested this library in Intelij with common java, not android. And that worked perfectly. So I just copied working code into Android Studio from Intelij and that error occurs.

Here's the code where this error occurs (if needed):

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

So the question is How to add external libraries properly to Android Studio? Or probaby there's some other problem? Thanks for advices.

like image 591
AnZyuZya Avatar asked May 20 '14 17:05

AnZyuZya


2 Answers

xml pull parser is a part of android framework, remove xmlpull-1.1.3.1.jar and try It might work.

like image 99
nizammoidu Avatar answered Nov 13 '22 23:11

nizammoidu


I fixed it by using exclude option in app/build.gradle, it works fine now.

dependencies {
    .....
    compile ('com.thoughtworks.xstream:xstream:1.4.7'){
        exclude group: 'xmlpull'
    }
}
like image 27
Miao1007 Avatar answered Nov 13 '22 23:11

Miao1007