2016-06-20 17 views
3

ich versucht habe, mit:Android Jack Compiler nicht Protokolle von proguard Regeln Entfernen

-assumenosideeffects class android.util.Log { 
    public static boolean isLoggable(java.lang.String, int); 
    public static int v(...); 
    public static int i(...); 
    public static int w(...); 
    public static int d(...); 
    public static int e(...); 
} 

in Proguard Protokolle zu entfernen, und es funktioniert super, wenn ich nicht den neuen Jack-Compiler

defaultConfig { 
    ... 
    jackOptions { 
     enabled true 
    } 
} 
compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
} 
mit

Wenn ich die apk kompiliere, habe ich bemerkt, dass alle Protokolle in der Produktionsversion aktiv sind. Gibt es einen Fehler, Fehler oder ist "-assumenosideeffects" noch nicht unterstützt?

Kann ich etwas anderes tun, um Strings aus den Logs in der endgültigen APK zu entfernen?

Antwort

1

Bei Verwendung der Jack-Compiler-Toolchain wird ProGuard nicht verwendet. Stattdessen verwendet Jack ein eigenes Tool, um die angegebenen Regeln anzuwenden.

Nicht alle ProGuard-Regeln werden unterstützt (siehe unterstützt directives): -assumenosideeffects ist nicht unterstützt.

Hinweis: DexGuard, die kommerzielle Variante von ProGuard unterstützt alle Anweisungen von ProGuard und kann in Kombination mit Jack ab Version 7.2 in 1-2 Wochen veröffentlicht werden.

+0

Ja, aber wenn Sie einen Blick in https://source.android.com/source/jack.html werfen, können Sie sehen, dass -assumenosideeffects in den "ignorierten Optionen" aufgeführt ist, aber nicht funktioniert, oder noch nicht implementiert . – Antonio

+0

Jack wird keinen Fehler ausgeben, wenn er auf eine solche Regel stößt, aber es wird nichts damit anfangen, das ist es, was ich mit nicht unterstützt meinte. –

+0

Also ** Jack ** verursacht Sicherheitslücken in Produktions-APKs? –