我刚开始使用android studio 1.1.0,无法解决在我的项目中添加外部jar的问题。
我正在构建一个非常简单的应用程序,只要我不尝试在我的应用程序模块中添加外部jar,它就能很好地运行。我想添加的jar命名为'xstream-1.4.8.jar'。我将jar文件粘贴到我的app模块的'libs'文件夹中。然后在左侧的项目浏览器选项卡中,我右键单击'libs'部分中的'xstream-1.4.8.jar'并选择'add as library ..'选项。
现在,我的app模块的 src 文件夹中的 build.gradle 的依赖项部分显示为:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile files('libs/xstream-1.4.8.jar')
}
当我构建项目时,它构建完美,没有任何错误。但是当我尝试运行应用程序时,我收到以下错误:
事件日志显示为:
Gradle build在15秒内完成了1个错误
消息部分显示为:
信息:Gradle任务[: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:prepareComAndroidSupportAppcompatV72200Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42200Library 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 最新消息:app:processDebugManifest UP-TO-DATE :app:processDebugResources UP-TO-DATE:app:generateDebugSources 最新消息:app:compileDebugJava UP-TO-DATE:app:preDexDebug 意外的顶级例外情况: com.android.dx.cf.iface.ParseException:错误的类文件魔法 (cafebabe)或版本(0034.0000)at 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)at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)at at com.android.dx.command.dexer.Main.access $ 300(Main.java:83)at 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)at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)at at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)at 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)...解析时 com / thoughtworks / xstream / mapper / LambdaMapper.class 1错误;中止 错误:任务':app:preDexDebug'执行失败。
com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令 'C:\ Program Files \ Java \ jdk1.7.0_75 \ bin \ java.exe''已完成 非零退出值1 信息:BUILD FAILED
我已经尝试过多次清理项目,但这没有用。每次我尝试运行应用程序时,都会收到此错误消息。我还在eclipse中使用相同的.jar文件构建了一个普通的java项目,它运行完美,没有任何问题。我究竟做错了什么?
答案 0 :(得分:0)
您必须使用 JDK 1.7 编译您的java项目(jar)。
如果使用JDK 1.8,请将目标设置为1.7
顺便说一句,您不需要在build.gradle的依赖项块中添加此行。
compile files('libs/xstream-1.4.8.jar')
这条线就足够了。
compile fileTree(dir: 'libs', include: ['*.jar'])
您可以使用:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
}