Android与Gradle(Java完成非零退出值2)

这是我的.gradle文件:

apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.test.test" minSdkVersion 15 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/license.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/notice.txt' exclude 'META-INF/NOTICE' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.mcxiaoke.volley:library:1.0.15' compile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.17' } 

当我尝试运行我的Android应用程序时,出现下一个错误:

错误:执行任务':app:dexDebug'失败。

com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:处理'命令'/ usr / lib / jvm / java-8-oracle / bin / java''以非零退出值2

当我添加到gradle文件jackson库时,我得到这个错误。 在Google上search一段时间后,我发现jackson库与android应用程序兼容,并且比其他库更快。

我如何解决它? 我是Android初学者。

Solutions Collecting From Web of "Android与Gradle(Java完成非零退出值2)"

我想你应该改变你的Java JDK更改jvm V8为jdk7。 这个链接可以帮助你: 是否可以使用Java 8进行Android开发?

其他可能的问题是它的依赖错误,在构build之前清理gradle。 并改变你的jackson库为此:

 compile 'com.fasterxml.jackson.core:jackson-databind:2.2.+' compile 'com.fasterxml.jackson.core:jackson-core:2.2.+' compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.+' 

不舒服的这个问题可能有几个原因。 在我的情况下,这是因为超过了最大线数。 Android Studio显示的消息并不意味着什么,但是不知何故,我发现解决scheme如下:

https://developer.android.com/tools/building/multidex.html

您必须创build一个扩展MultiDexApplication的类,并覆盖以下方法:

  @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } 

不要忘记在AndroidManifest文件的标签内添加“name”,如上面链接所述。

我已经将所需的库复制到my_project / app / libs中,并且还在build.gradle中添加了依赖项。 所以,在我的情况下,我删除了我在my_project / app / libs中复制的库。 由于gradle维护所有的依赖关系,我不必把库放在/ libs中。 这解决了我的问题。

也许你有一个依赖,导致不兼容

例如:

修复JDKpath解决了这个问题。

右键单击项目>打开模块设置> SDK位置>在JDK位置提供JDK文件夹的path。