2016-06-16 19 views

Antwort

0

Aus Ihrer Beschreibung verstehe ich, dass Sie alles im com.foo.bar Paket behalten möchten (+ Unterpakete?). Sie können dies durch die folgende Regel erreichen:

-keep class com.foo.bar.** { *; } 

Das ** Muster auch Subpackages übereinstimmen, wenn Sie den aktuellen Paket möchten, verwenden Sie * statt.

Wenn Sie eine Regel wie folgt verwenden:

-keep class !com.foo.** { *; } 

Sie halten tatsächlich alles andere als com.foo **, so dass Sie mit Ausschluss Muster vorsichtig sein sollte.. Fügen Sie danach immer mindestens ein Einschlussmuster ein. Das Ausschlussmuster sollte spezifischer sein als das Einschlussmuster, siehe unten.

Diese Regel sollte korrekt analysiert (es gerade getestet), wird aber nicht funktionieren, da ProGuard Auswertung einer Regel stoppen, sobald es eine Übereinstimmung findet:

-keep class !com.foo.**, com.foo.bar.** { *; } 

Der Ausschluss Muster !com.foo.** alles in com übereinstimmen. foo und subpackages, so wird es auch com.foo.bar übereinstimmen.

+0

Bitte lassen Sie mich klären. Ich möchte alle Klassen behalten, außer dass sie unter com.foo. * Stehen. Auch com.foo.bar. * Sollte auch behalten werden. – wooohoh

+0

Also, am Ende möchte ich nur ** com.foo *** verschleiern, während ** com.foo.bar ausgeschlossen. *** – wooohoh

Verwandte Themen