web-dev-qa-db-fra.com

Android - transformer les classes avec Dex For Debug

Mon projet fonctionnait bien jusqu'à ce que j'ajoute la dépendance à Facebook . J'ai commencé à avoir cette erreur . J'ai lu beaucoup de questions, le problème semble être lié à MultiDex. Mais aucune des solutions a travaillé pour moi

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 
'/usr/lib/jvm/Java-7-openjdk-AMD64/bin/Java'' finished with non-zero exit value 1

Même après que je supprime ce que j'ai ajouté, cela reste visible et la progression semble prendre beaucoup de temps pour la construction. 

Voici mon build.gradle

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "net.ciblo.spectrodraft"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    multiDexEnabled true

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

repositories {
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }

}
compile 'com.facebook.Android:facebook-Android-sdk:[4,5)'
compile 'com.Android.support:multidex:1.0.1'
compile 'com.Android.support:appcompat-v7:23.2.1'
compile 'com.Android.support:cardview-v7:23.2.1'
compile 'com.Android.support:design:23.2.1'
compile 'com.daimajia.easing:library:1.0.1@aar'
compile 'com.daimajia.androidanimations:library:1.1.3@aar'
compile 'com.google.Android.gms:play-services:8.4.0'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.pnikosis:materialish-progress:1.5'
compile 'com.nineoldandroids:library:2.4.+'
compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
compile 'com.Android.support:support-v4:23.2.1'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

}
21
Haroun SMIDA

L'ajout du code suivant au module d'application build.gradle a résolu mon problème.

Android{
    defaultConfig {

        // Enabling multidex support.
        multiDexEnabled true
    }


    dexOptions {
        javaMaxHeapSize "4g"
    }
}
dependencies {
    //...
    compile 'com.Android.support:multidex:1.0.0'
}
19
Haroun SMIDA

vous pouvez compiler de manière sélective les API de service Google Play dans votre application. Par exemple, pour inclure uniquement les API Google Fit et Android Wear, remplacez la ligne suivante dans votre fichier build.gradle:

 compile 'com.google.Android.gms:play-services:8.4.0'

avec ces lignes:

compile 'com.google.Android.gms:play-services-fitness:8.4.0'
compile 'com.google.Android.gms:play-services-wearable:8.4.0'

==> conserver le nombre de méthodes dans votre application (y compris les API de structure, les méthodes de bibliothèque et votre propre code) sous la limite de 65 536.

4
Mounir Elfassi

Cet horrible problème récurrent m'a encore frappé récemment. La construction de gradles est bloquée en permanence sur l'application: transformClassesWithDexForDebug, fonctionnant pendant des heures et ne finissant jamais. Cette fois, je l'ai corrigé en supprimant toutes les références à 'fabric', une nouvelle couche de Crashlytics étant appliquée sur nous.

//apply plugin: 'io.fabric'   //REMOVE
//classpath 'io.fabric.tools:gradle:1.26.1'  //REMOVE
0
Androidcoder

Ajouter ce qui suit dans build.gradle a résolu le problème pour moi,

Android {
//...

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
//...
}
0
Anup