2011-01-28 8 views
72

ProGuardからいくつかのファイルパスを除外します。例com.myapp.customcomponentsproguard使用時に特定のパッケージパスを維持/除外する方法は?

どうすればいいですか?私はこのディレクトリにあるすべてのカスタムコンポーネントファイルに対して-keepフラグを置くことは嫌です。

私は次のことを試してみましたが、それは動作しません:

-keep public class com.myapp.customcomponents.* 

答えて

173

あなたはそれが動作しませんどのように指定しないでください。以下の設定が保持

​​

:以下の構成は、指定したパッケージとそのサブパッケージ内のすべてのパブリッククラスの名前を保持します

-keep public class com.myapp.customcomponents.* 

:あなたの構成が指定されたパッケージ内のすべてのパブリッククラスの名前を保持します指定されたパッケージおよびそのサブパッケージ内のすべてのpublic/protectedクラス/フィールド/メソッドの名前:

-keep public class com.myapp.customcomponents.** { 
    public protected *; 
} 
+1

最良の説明から除外され、ここで、それに応じてパッケージ名を置き換えます。 –

33

次の行をbo proguard.config

-keep class com.facebook.** { *; } 
-dontwarn com.facebook.** 

のttomはcom.facebookは、ProGuardの

+7

なぜkeepとdontwarnを一緒に使うのですか? –

+0

@ Jongz Puangput、もしそうなら、アプリケーションがcom.facebookパッケージを使用しないと、ビルドには「設定が未知のクラスを参照しています...」と表示されます。 -dontwarnこのメモを無効にします。 –

+8

'{*; }はどういう意味ですか? –

関連する問題