2015-11-23 13 views
29

Ogni volta che si verifica questo errore durante l'esecuzione del mio progetto. Posso fare un Clean e poi Run di nuovo, e funziona. Ma non è una soluzione ottimale. Qualche idea?Errore: esecuzione non riuscita per l'attività ': android: transformClassesAndResourcesWithProguardForRelease'

Error:Execution failed for task ':android:transformClassesAndResourcesWithProguardForRelease'. 

java.io.IOException: Failed to rename android\build\intermediates\transforms\proguard\release\folders\3\1f\main\classes.jar to android\build\intermediates\transforms\proguard\release\jars\3\1f\classes.jar

+1

hai trovato una soluzione per questo problema? –

risposta

32

Questo bug succede quando le versioni di SDK, sviluppare strumenti e Gradle Plugin non corrisponde (in termini di compatibilità). La soluzione è verificare se stai utilizzando le versioni più recenti. I plugin gradle sono posizionati nel file build.gradle del progetto. Altre versioni sono nel file build.gradle del modulo. Per esempio, per SDK 23, è necessario utilizzare gli strumenti Build 23.0.1 e gradle versione 1.3.1.

Pulire il progetto dopo aver modificato le impostazioni. (Ha risolto il problema, e mai visto di nuovo.)

refer this question

+13

L'ho provato con ** SDK 24 **, ** Build Tools 24.0.0 ** e gradle ** plug-in versione 2.1.2 **, ho lo stesso problema .. –

+2

@sohayb Forse hai un problema nel tuo file proguard con alcune delle librerie di terze parti? È successo nel mio caso ... Ho appena aggiunto le regole corrette per la libreria esterna ed è stato sufficiente. – box

4

rimuovere le linee da Proguard-rules.txt che contiene:

-injars, -outjars, o -libraryjars

e ricostruire .

0

Nel mio caso il problema è stato risolto eseguendo il downgrade della versione Proguard utilizzata da Gradle per generare l'apk firmato. È possibile eseguirne il downgrade posizionando questo blocco all'interno del file build.gradle a livello di progetto. Inseriscilo nel blocco buildscript.

configurations.all { 
    resolutionStrategy { 
     force 'net.sf.proguard:proguard-gradle:5.2.1' 
    } 
} 

È possibile verificare la versione corrente di Proguard eseguendo questo comando nella cartella principale del progetto:

./gradlew buildEnvironment | grep proguard 

Ecco parte del stacktrace Proguard per aiutare gli altri a trovare il problema che stavo avendo.

Caused by: java.io.IOException: java.lang.NullPointerException 
at com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.java:283) 
at com.android.build.gradle.internal.transforms.ProGuardTransform.access$000(ProGuardTransform.java:63) 
at com.android.build.gradle.internal.transforms.ProGuardTransform$1.run(ProGuardTransform.java:173) 
at com.android.builder.tasks.Job.runTask(Job.java:48) 
at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41) 
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:225) 
Caused by: java.lang.NullPointerException 
at proguard.optimize.info.NonEmptyStackReturnMarker.setReturnsWithNonEmptyStack(NonEmptyStackReturnMarker.java:102) 
at proguard.optimize.info.NonEmptyStackReturnMarker.markReturnWithNonEmptyStack(NonEmptyStackReturnMarker.java:95) 
at proguard.optimize.info.NonEmptyStackReturnMarker.visitSimpleInstruction(NonEmptyStackReturnMarker.java:76) 
... 
at proguard.optimize.Optimizer.execute(Optimizer.java:649) 
at proguard.ProGuard.optimize(ProGuard.java:328) 
at proguard.ProGuard.execute(ProGuard.java:127) 
at com.android.build.gradle.internal.transforms.BaseProguardAction.runProguard(BaseProguardAction.java:54) 
at com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.java:254) 
... 5 more 
+0

Ciao, ho anche lo stesso problema, puoi aiutare, per il problema segui questo link https://stackoverflow.com/questions/45629710/build-fails-with-apptransformclassesandresourceswithproguardforrelease-on-upgra – Awadesh

0

Nel mio caso, ho semplicemente aggiornato il mio plugin e questo errore è stato risolto.

Problemi correlati