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

Ham*_*n87 7 rest android gradle jackson android-volley

这是我的.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'
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行我的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库时,我收到此错误.谷歌搜索一段时间,我发现杰克逊库与Android应用程序兼容,并且它比其他库像gson更快.

我怎么解决呢?我是Android初学者.

enc*_*ano 3

我认为你应该将你的java JDK更改为jdk7的jvm v8。此链接可以帮助您: Is it possible to use Java 8 for Androiddevelopment?

其他可能的问题是依赖错误,在构建之前清理 gradle。并为此更改您的杰克逊库:

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.+'
Run Code Online (Sandbox Code Playgroud)

  • 看来问题是由如何指定 gradle 依赖项引起的。就我而言,我使用的编译 'com.google.android.gms:play-services:7.5.+' 导致了错误,但是,我将其更改为编译 'com.google.android.gms:play-services: 7.5.0',问题解决了 (3认同)