Android Studio. 无法正确导入外部库

7
我正在尝试将外部库(这个)添加到类路径中。 我的做法是: 文件 -> 项目结构 -> 依赖项选项卡 -> 添加文件依赖项。这样做正确吗?Maven的库列表中没有Xstream。如果我点击添加模块依赖项,列表为空。
我只需要将3个JAR文件添加到类路径中-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 对此库进行了测试,并且工作得非常好。因此,我只是从 Intelij 中复制了可行的代码到 Android Studio 中,然后出现了这个错误。
以下是发生错误的代码(如果需要):
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中?或者可能存在其他问题?感谢您的建议。


1
请研究“Multiple dex files define”错误。虽然在Stack Overflow上有许多问题/答案,但大多数与支持库有关。您有一个类被包含在两个不同的库中,这在此构建系统中是不允许的。 - Scott Barta
3个回答

5

XML Pull解析器是Android框架的一部分,删除xmlpull-1.1.3.1.jar并尝试重新运行,也许会起作用。


是的,那真的有所帮助。非常感谢。 - AnZyuZya

3

我通过在app/build.gradle中使用exclude选项来解决了这个问题,现在它可以正常工作了。

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

-1

如何在Android Studio中添加外部库:

  • Project ViewAndroid更改为Project
  • 将外部库添加到您要将jar文件放入其中的项目的“libs”目录中。
  • 选择“libs/xxx.jar”,右键单击,选择“添加为库”。

然后检查build.gradledependencies,您会发现jar文件已成功添加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接