我是否需要在混淆时“保持” Parcelable 在 proguard 规则中

vij*_*y_t 6 android proguard parcelable android-proguard

我的项目几乎没有扩展Parcelable 的类。我是否需要在混淆时将它们“保留”在 proguard 规则中。

可包裹件的一般做法是什么?

Dou*_*son 13

不,默认的 android 规则包括:

-keepclassmembers class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator CREATOR;
}
Run Code Online (Sandbox Code Playgroud)

如果您保留默认生成的 gradle 定义,将应用这些默认规则:

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
Run Code Online (Sandbox Code Playgroud)


小智 8

如果您将 Kotlin 与 proguard 一起使用,@Parcelize您可以将其添加到 proguard-rules.pro

-keep @kotlinx.android.parcel.Parcelize public class *
Run Code Online (Sandbox Code Playgroud)

  • `kotlinx.android.parcel.Parcelize` 已弃用,取而代之的是 `kotlinx.parcelize.Parcelize`,因此可能需要更改为 `-keep @kotlinx.parcelize.Parcelize public class *` (5认同)