【问题标题】:Do I need to 'keep' Parcelable in proguard rules while obfuscating在混淆时我是否需要在 proguard 规则中“保持” Parcelable
【发布时间】:2016-07-04 18:17:00
【问题描述】:

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

parcelables 的一般做法是什么?

【问题讨论】:

  • 没有。但是,如果您使用 GSON 使用相同的类进行 JSON 解析,则使用带有字段名称的 serializedName 标记。
  • 是的,您需要,如stackoverflow.com/a/20918277/3050249中所述

标签: android proguard parcelable android-proguard


【解决方案1】:

不,默认的 android 规则包括:

-keepclassmembers class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator CREATOR;
}

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

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

【讨论】:

  • 确保不要忘记字段定义中的“final”!这就是我的原因,为什么 proguard 仍然删除它..
【解决方案2】:

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

-keep @kotlinx.android.parcel.Parcelize public class *

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多