2016-06-17 10 views
1

Ich verwende Android Studio Version v2.1.2 und Proguard funktioniert nicht, wenn ich versuche, den Release-Build zu signieren, schlägt der Build dramatisch.Jack scheint nicht den Code selbst zu verschleiern

According to this link from developer docs Jack macht die Verschleierung automatisch.

Griffe schrumpfVerschleierungs, Neuverpackung und ein multidex eigenes Paket Verwendung wie ProGuard nicht mehr notwendig ist.

Ich musste minifyEnabled Flag deaktivieren und entfernen Sie die Zeile, wo wir Proguard-Datei laden; damit es funktioniert, nachdem Sie das getan haben; Ich überprüfte die apk Datei, die durch das oben genannte erzeugt wurde, und ich kann nicht sagen, ob Jack wirklich redundanten Code verschleierte und reduzierte, da die Freigabe apk Größe dieselbe wie die Debug apk Größe ist.

Ich muss verstehen, wie man Verschleierung mit dem neueren Compiler arbeiten, da die Dokumentation nicht wirklich hilft.

Ich freue mich auf die folgenden Fragen zu verstehen.

Funktioniert Jack ohne Proguard Datei?

Gibt es eine Möglichkeit, Proguard Datei anzugeben?

Antwort

1

Der Jack-Compiler verfügt über einen eigenen Shrinker und Obfuscator, der vorhandene Proguard-Regeln wieder verwendet (siehe supported directives).

Die Konfiguration sollte die gleiche wie zuvor, so dass Sie die folgenden Ihre buildType Konfiguration hinzufügen müssen:

minifyEnabled true 
proguardFile getDefaultProguardFile('proguard-android.txt') 
proguardFile 'your-proguard-file.txt' 
+0

Hallo, danke für die Antwort. Ich bin immer noch verwirrt! Entschlüsselt Jack den Code selbst oder benötigt er eine Proguard-Datei? Wenn es eine proguardFile akzeptiert, welcher Teil der Verschleierung tut es dann alleine? –

+0

Wenn die Jack Toolchain aktiviert ist, wird ProGuard überhaupt nicht ausgeführt. Die angegebenen Proguard-Regeln werden von der Toolchain selbst ausgewertet und angewendet. –