无法将 XStream 文件依赖添加到 Android Studio 项目 [英] Can't add XStream file dependency to Android Studio project

查看:44
本文介绍了无法将 XStream 文件依赖添加到 Android Studio 项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

信息:Gradle 任务 [:app:assembleDebug]:app:preBuild 最新:app:preDebugBuild 最新:app:compileDebugNdk 最新:app:checkDebugManifest:app:preReleaseBuild 最新:app:prepareComAndroidSupportAppcompatV72103Library 最新:app:prepareComAndroidSupportSupportV42103Library 最新:app:prepareDebugDependencies:app:compileDebugAidl 最新:app:compileDebugRenderscript 最新:app:generateDebugBuildConfig 最新:app:generateDebugAssets 最新:app:mergeDebugAssets 最新:app:generateDebugResValues 最新:app:generateDebugResources 最新:app:mergeDebugResources 最新:app:processDebugManifest 最新:app:processDebugResources 最新:app:generateDebugSources 最新:app:compileDebugJava 最新:app:preDexDebug意外的顶级例外:com.android.dx.cf.iface.ParseException:错误的类文件魔法(cafebabe)或版本(0034.0000)在 com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)在 com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)在 com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)在 com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)在 com.android.dx.command.dexer.Main.processClass(Main.java:704)在 com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)在 com.android.dx.command.dexer.Main.access$300(Main.java:83)在 com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)在 com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)在 com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)在 com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)在 com.android.dx.command.dexer.Main.processOne(Main.java:632)在 com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)在 com.android.dx.command.dexer.Main.run(Main.java:246)在 com.android.dx.command.dexer.Main.main(Main.java:215)在 com.android.dx.command.Main.main(Main.java:106)...同时解析 com/thoughtworks/xstream/mapper/LambdaMapper.class1个错误;中止错误:任务 ':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 条警告信息:在控制台查看完整输出

我查看了此处的相关答案,但没有任何建议的解决方案适合我.

提前致谢.

解决方案

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') {排除组:'xmlpull',模块:'xmlpull'}

I have downloaded and added xstream-1.4.8.jar to my Android Studio project. When I build the project it works fine but when I try to run it I get the following error from the Gradle Build window:

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'' finished with non-zero exit value 1 Information:BUILD FAILED Information:Total time: 14.974 secs Information:1 error Information:0 warnings Information:See complete output in console

I have looked at the related answers on here and none of the suggested solutions work for me.

Thanks in advance.

解决方案

XStream 1.4.8 is compiled for Java 8 and the latest version Android supports is Java 7.

One solution is to use XStream 1.4.7, that works with Android, and another to download XStream 1.4.8 sources and compile them yourself. In that case you will have to remove LambdaMapper.java and possibly some other problematic classes.

Also you can have issues with different versions of xmlpull parser used. In that case you can exclude one from compiling.

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

这篇关于无法将 XStream 文件依赖添加到 Android Studio 项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆