83 votes

transformClassesAndResourcesWithProguardForRelease FAILED

Je suis en train de Construire mon application Android avec Gradle dans la console. Mais l'obtention d'erreur ci-dessous au sujet de la tâche ':app:transformClassesAndResourcesWithproguardforrelease':

construire.gradle:

buildscript {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

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

app/build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion '24.0.2'
    defaultConfig {
        applicationId "com.XXX.XXX"
        minSdkVersion 14
        targetSdkVersion 24
        versionCode 1
        versionName "0.1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile('com.squareup.retrofit2:retrofit:2.1.0') {
        exclude module: 'okhttp'
    }
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.squareup.okhttp3:okhttp:3.4.1'
    compile 'com.squareup.retrofit2:converter-moshi:2.1.0'
    compile 'moe.banana:moshi-jsonapi:2.2.0'
    compile 'com.squareup.moshi:moshi-adapters:1.3.1'
    compile 'com.google.android.gms:play-services-maps:9.6.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.firebase:firebase-core:9.6.0'
    compile 'com.google.firebase:firebase-crash:9.6.0'
    testCompile 'junit:junit:4.12'
}

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

gradle-wrapper.propriétés

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

./gradlew build --stacktrace

C'est l'exception que je reçois:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task
':app:transformClassesAndResourcesWithProguardForRelease'.

122voto

Johnie Ndosh Spax Points 1132

Essayez d’ajouter ce code à vos règles proGuard, cela a fonctionné pour moi.

 -ignorewarnings
-keep class * {
    public private *;
}
 

La réponse a été publiée ici: L' exécution a échoué pour la tâche ': app: transformClassesAndResourcesWithProguardForRelease

65voto

Richi Points 688

ajouter ce code à ..your-project/app/proguard-rules.pro

  -ignorewarnings
 

votre apk signé sera généré avec succès ...

Mettre à jour :

C'est mieux de corriger vos messages d'avertissement en utilisant les touches -dontwarn ou -keep sur votre proguard-rules.pro ... Parce que si vous utilisez (peut-être vos bibliothèques) du reflet java dans votre code l'application va être plantée ...

8voto

Haris Durrani Points 78

Cela a fonctionné pour moi, je devais aussi ajouter un fichier suivant dans un fichier pro-gaurd.txt

 #### -- Picasso --
 -dontwarn com.squareup.picasso.**

 #### -- OkHttp --

 -dontwarn com.squareup.okhttp.internal.**

 #### -- Apache Commons --

 -dontwarn org.apache.commons.logging.**

     -ignorewarnings 
-keep class * {
public private protected *;
}
 

6voto

Brijesh Tanwar Points 100

Je n'ai rien changé rien que commentaire

 // shrinkResources true
// minifyEnabled true
 

vous ne souhaitez pas modifier les fichiers de proguard que j'ai déjà recherchés après 2 jours perdus

0voto

Ali Bagheri Points 632

Utilisez ce code dans 'proguard-rules.pro' peut être résolu.

 -keep class * {
public private protected *;
}
 

ou

 -keep class * {*;}
 
  • remarque: les commandes ci-dessus ignorent les obscurcissements

  • peut utiliser ceci à la place ci-dessus pour sauver l'état confus

    -keepnames class * {*;}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X