133

ProGuard から一部のファイル パスを除外したい。例com.myapp.customcomponents

これどうやってするの?このディレクトリにあるすべてのカスタム コンポーネント ファイルに -keep フラグを設定するのは嫌いです。

次のことを試しましたが、うまくいきません。

-keep public class com.myapp.customcomponents.*
4

4 に答える 4

273

どのように機能しないかは指定しません。構成は、指定されたパッケージ内のすべてのパブリック クラスの名前を保持します。

-keep public class com.myapp.customcomponents.*

次の構成では、指定したパッケージとそのサブパッケージ内のすべてのパブリック クラスの名前が保持されます。

-keep public class com.myapp.customcomponents.**

次の構成は、指定されたパッケージとそのサブパッケージ内のすべてのパブリック/保護されたクラス/フィールド/メソッドの名前を保持します。

-keep public class com.myapp.customcomponents.** {
  public protected *;
}
于 2011-02-05T00:59:15.027 に答える
73

ProGuard 構成の下部に次の行を追加します。

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

それに応じてパッケージ名を置き換えます。ここでは、パッケージcom.facebookは ProGuard から除外されます。

于 2013-01-04T12:58:07.153 に答える
8

Android Studio 4.0を使用して私にとってうまくいったのは次のとおりです。

-keepclassmembers class com.myapp.customcomponents.* {
    <fields>;
    <init>();
    <methods>;
}

他の回答の二重アスタリスク (**) は機能しませんでした。R8でも上記の構成を試しましたが、正常に動作します。

于 2020-07-12T16:30:40.567 に答える