2016-12-29 3 views
1

Ich habe eine APK meiner Android-Anwendung (als Versuch) generiert und ich hatte kein Problem, die APK wurde korrekt generiert.Fehler: Ausführung fehlgeschlagen für Aufgabe ': app: transformClassesAndResourcesWithProguardForRelease' beim Generieren von APK

Jetzt möchte ich meinen Code beim Generieren der APK verschleiern, also habe ich die folgende Zeile auf meinem release Block auf build.gradle Datei verwendet.

minifyEnabled true 

Das Problem ist, dass es jetzt mir die folgende Fehlermeldung führt:

Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'. java.io.IOException: Please correct the above warnings first.

mit vielen Warnungen. Um genau zu sein, 1018 Warnungen.

Die meisten von ihnen sind wie:

Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.tsp.MessageImprint

oder

Warning:com.github.mikephil.charting.data.realm.base.RealmBaseDataSet: can't find referenced class io.realm.Sort

immer der gleiche Fehler ist. Eine Klasse, die keine referenzierte Klasse finden kann.

Ich verwende MPAndroidChart so denke ich, es etwas im Zusammenhang ist (wegen des Namens der Pakete, die auf die Warnungen angezeigt wird), aber ich bin nicht in der Lage, diese Warnungen zu korrigieren.

EDIT: Als beweisen, ich habe versucht, die Klassen zu halten mit:

-keep public class com.itextpdf.text.pdf.** 

auf meiner proguard-rules.pro-Datei, aber ich habe immer noch die gleichen Warnungen.

Mein release Abschnitt build.gradle Datei ist:

release { 
    minifyEnabled true 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
} 

Bin ich etwas fehlt, während mein Code verschleiern?

Vielen Dank im Voraus!

+0

[Check this] (http://stackoverflow.com/questions/33589318/error-building-apk-when-minifyenabled-true) –

+0

@VygintasB Ich glaube nicht, '-dontwarn' wird ein sicherer sein Möglichkeit. Ich versuche, die öffentlichen Klassen zu benutzen, aber ich kann es nicht zur Arbeit bringen. –

Antwort

2

Schließlich habe ich festgestellt, dass MPAndroidChart hat eine document in denen Sie erläutert, wie Proguard zu konfigurieren.

Mit folgenden Konfiguration:

-keep class com.github.mikephil.charting.** { *; } 
-dontwarn io.realm.** 

konnte ich die obfuscate APK ohne Warnungen erstellen.

Auch habe ich festgestellt, dass itextpdf eine Bibliothek war, die ich in der Vergangenheit verwendet habe, aber ich brauchte es nicht heute, also muss ich es nur aus den Abhängigkeiten auf meiner Gradle-Datei löschen und die Warnungen sind auch verschwunden.

1

Ich habe eine Lösung für dieses Problem während der apk-Generierung gefunden.

Öffnen Sie build.gradle der App und ändern Sie den Build-Typ wie folgt.

buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt') 
    } 
} 
Verwandte Themen