无法添加XStream的文件依赖到Android Studio项目 [英] Can't add XStream file dependency to Android Studio project
问题描述
我已经下载并添加的XStream-1.4.8.jar
来我的Android Studio项目。当我建立这个项目它工作正常,但是当我尝试运行它,我得到以下错误从摇篮构建窗口:
信息:摇篮任务[:应用:assembleDebug]
:应用程序:preBuild UP-TO-DATE
:应用程序:preDebugBuild UP-TO-DATE
:应用:compileDebugNdk UP-TO-DATE
:应用:checkDebugManifest
:应用程序:preReleaseBuild UP-TO-DATE
:应用程序:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:应用程序:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:应用程序:prepareDebugDependencies
:应用:compileDebugAidl UP-TO-DATE
:应用:compileDebugRenderscript UP-TO-DATE
:应用:generateDebugBuildConfig UP-TO-DATE
:应用:generateDebugAssets UP-TO-DATE
:应用:mergeDebugAssets UP-TO-DATE
:应用:generateDebugResValues UP-TO-DATE
:应用:generateDebugResources UP-TO-DATE
:应用:mergeDebugResources UP-TO-DATE
:应用:processDebugManifest UP-TO-DATE
:应用:processDebugResources UP-TO-DATE
:应用:generateDebugSources UP-TO-DATE
:应用:compileDebugJava UP-TO-DATE
:应用程序: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的/映射器/ LambdaMapper.class
1错误;中止
错误:执行失败的任务:应用程序:preDexDebug。
com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:过程'命令'C:\\ Program Files文件\\的Java \\ jdk1.8.0_25 \\斌\\ java.exe的'完成非零退出值1
资料:构建失败
信息:总时间:14.974秒
信息:1错误
信息:0警告
信息:查看控制台完成输出
块引用>我已经看过了相关解答就到这里,没有建议的解决方案,为我工作。
先谢谢了。
解决方案
的XStream 1.4.8
编译为的Java 8
和Android支持最新的版本是Java 7的
。一个解决方案是使用
的XStream 1.4.7
,这与Android的作品,另有下载的XStream 1.4.8
源和自己编译它们。在这种情况下,你将不得不删除LambdaMapper.java
及其他一些问题的课程。你也可以有使用不同版本的
xmlpull
解析器的问题。在这种情况下,您可以排除一个来自编译。编译('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 forJava 8
and the latest version Android supports isJava 7
.One solution is to use
XStream 1.4.7
, that works with Android, and another to downloadXStream 1.4.8
sources and compile them yourself. In that case you will have to removeLambdaMapper.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屋!