user3746428
user3746428

Reputation: 11175

Execution failed for task ':app:transformClassesWithDexForDebug' - Gradle dependencies?

I didn't want to start a new question related to this issue since I know there are a few already, but I still haven't found a solution and I'm pretty stuck.

I am currently getting the error:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

And this is what the Gradle Console is showi

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lbolts/AggregateException; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) at com.android.dx.command.dexer.Main.run(Main.java:277) at com.android.dx.command.dexer.Main.main(Main.java:245) at com.android.dx.command.Main.main(Main.java:106)

FAILED

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':app:transformClassesWithDexForDebug'.

    com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

This is my build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.andrewnwalker.mousetimes_california"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile fileTree(dir: 'libs', include: ['Parse-*.jar'])
    compile files('libs/Parse-1.12.0.jar')
    compile files('libs/bolts-tasks-1.3.0.jar')
    compile files('libs/universal-image-loader-1.9.5.jar')
    compile files('libs/joda-time-2.9.1.jar')
}

I've tried all of the obvious things such as cleaning, rebuilding, opening/closing. I've also tried removing some of the dependencies to see if that would make a difference.

As far as I know I didn't change anything from when it worked fine. I'm pretty sure I just ran the project for a second time in a row and the error appeared. I might be wrong though.

Anyone have any suggestions?

Upvotes: 2

Views: 3338

Answers (2)

ndkcha
ndkcha

Reputation: 174

Update your top level gradle like this,

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
        classpath 'com.google.gms:google-services:2.0.0-alpha3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Update your app level gradle like this,

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        // package name, target sdk and version code as per your code
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    // your libraries here
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:multidex:1.0.1'
}

apply plugin: 'com.google.gms.google-services'

And update your android manifest file like this,

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:name="android.support.multidex.MultiDexApplication"
    android:theme="@style/AppTheme">

And add this line to your launcher activity in onCreate function.

MultiDex.install(this);

See if this works.

Upvotes: 0

T D Nguyen
T D Nguyen

Reputation: 7613

Recently, I encountered the same problem and here is my solution with 2 steps:

  1. Top level Gradle:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
        classpath 'com.google.gms:google-services:2.0.0-alpha3'//for any google libs
       }
     }
    
    allprojects {
    repositories {
          jcenter()
        }
    }
    
  2. Module(app) level Gradle:

    apply plugin: 'com.android.application'
    
    android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    
    
    defaultConfig {
        applicationId "your_app_id"
        minSdkVersion 9
        targetSdkVersion 22
        // Enabling multidex support can also help (uncomment and test)
        //multiDexEnabled true
    }
    
    buildTypes {
        release {
            //minifyEnabled true
            //shrinkResources true
            proguardFiles 'proguard-project.txt'
        }
    }
    
    } 
    
    dependencies {
    //your dependencies
    }
    apply plugin: 'com.google.gms.google-services' **//Place this line at the end if you use any google service lib.**
    

Upvotes: 1

Related Questions