【问题标题】:Can't add XStream file dependency to Android Studio project无法将 XStream 文件依赖项添加到 Android Studio 项目
【发布时间】:2015-05-10 20:20:58
【问题描述】:

我已下载xstream-1.4.8.jar 并将其添加到我的 Android Studio 项目中。当我构建项目时,它工作正常,但是当我尝试运行它时,我从 Gradle 构建窗口中收到以下错误:

Information:Gradle tasks [:app:assembleDebug]
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:preDexDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
    at com.android.dx.command.dexer.Main.processClass(Main.java:704)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
    at com.android.dx.command.dexer.Main.access$300(Main.java:83)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:632)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)
...while parsing com/thoughtworks/xstream/mapper/LambdaMapper.class
1 error; aborting
Error:Execution failed for task ':app:preDexDebug'.

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_25\bin\java.exe'' 完成非零退出值 1 信息:构建失败 信息:总时间:14.974 秒 信息:1个错误 信息:0 个警告 信息:在控制台中查看完整的输出

我已经查看了此处的相关答案,但没有一个建议的解决方案适合我。

提前致谢。

【问题讨论】:

    标签: android xml android-studio xstream


    【解决方案1】:

    XStream 1.4.8 是为Java 8 编译的,Android 支持的最新版本是Java 7

    一种解决方案是使用适用于 Android 的XStream 1.4.7,另一种解决方案是下载XStream 1.4.8 源并自行编译。在这种情况下,您将不得不删除 LambdaMapper.java 以及可能的其他一些有问题的类。

    您也可能会遇到使用不同版本的xmlpull 解析器的问题。在这种情况下,您可以从编译中排除一个。

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

    【讨论】:

    • 嗨,我在发布问题后不久就解决了这个问题。我现在使用 XStream 1.4.7。非常感谢您的帮助
    • 他们现在发布了1.4.10-java7 它不包含任何Java 8 的东西。
    • Android Plugin for Gradle 3.0.0 似乎不再接受您发布的排除命令。但它适用于 2.3.3。见stackoverflow.com/questions/47335142/…
    • @OneWorld 对我来说很好。也许其他一些组合会触发错误。在从项目中删除 .gradle 文件夹之前,我无法构建一个项目(不是与 XStream 相关的错误)。其他人没有这样的问题,都使用 XStream。
    • @DalijaPrasnikar 你是对的。我终于找到了组合:stackoverflow.com/questions/47335142/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 2018-11-21
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    相关资源
    最近更新 更多