I am trying to run the app in debug mode but I get the following error:

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_11\bin\java.exe'' finished with non-zero exit value 2

Below is my build.gradle file:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'idea'


repositories {
    maven { url 'https://maven.fabric.io/public' }
}


android {
    compileSdkVersion 21
    buildToolsVersion '21.1.1'
    defaultConfig {
        applicationId 'com.rayat.pricewiz'
        minSdkVersion 17
        targetSdkVersion 21
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            multiDexEnabled true
        }
    }
    productFlavors {
    }
}

android {
    packagingOptions {
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE.txt'
    }
    dexOptions {
        jumboMode = true
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile 'com.android.support:multidex:1.0.0'
    compile files('libs/ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar')
    compile files('libs/universal-image-loader-1.9.2.jar')
    // You must install or update the Google Repository through the SDK manager to use this dependency.
    // You must install or update the Google Repository through the SDK manager to use this dependency.
    compile 'com.google.android.gms:play-services:6.1.71'
    compile 'com.android.support:recyclerview-v7:+'
    compile files('libs/CWAC-SackOfViewsAdapter.jar')
    compile 'com.octo.android.robospice:robospice:1.4.14'
    compile 'com.octo.android.robospice:robospice-spring-android:1.4.14'
    compile 'com.facebook.android:facebook-android-sdk:3.21.1'
    compile('com.twitter.sdk.android:twitter:[email protected]') {
        transitive = true;
    }
    compile files('libs/javax.mail.jar')
    compile files('libs/jackson-databind-2.5.0.jar')
    compile files('libs/jackson-all-1.9.11.jar')
    compile files('libs/jackson-mini-1.9.11.jar')
    compile files('libs/scanditsdk-barcodepicker-android-4.2.1.jar')
    compile files('libs/nineoldandroids-2.4.0.jar')
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
    compile 'com.squareup.okhttp:okhttp:2.0.0'
}

Can anyone please help as this error is driving me crazy. My code is hitting 65k limit so I added multiDexEnabled option.

EDIT My project architecture

Thanks

Solution 1

That is because you enabled multiDex for release builds only, not for debug builds.

Try this:

defaultConfig {
    multiDexEnabled true
}

Solution 2

Try this

dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}

Solution 3

Just see :: Configuring Your App for Multidex with Gradle on Android developer official docs