【问题标题】:Is there a way to obfuscate a class name but not the members with R8有没有办法混淆类名而不是 R8 的成员
【发布时间】:2019-12-16 17:46:11
【问题描述】:

我有一堆使用 GSON 进行(反)序列化的改造请求/响应类。

我目前使用@Keep 来确保 R8 不会将它们抽象化,或混淆属性名称(GSON 需要这些名称)。

有什么方法可以混淆类名而不混淆属性名等...

【问题讨论】:

    标签: android proguard android-r8


    【解决方案1】:

    我觉得你可以试试-keepclassmembernames

    根据 proguard 手册here

    -keepclassmembernames class_specification

    short for-keepclassmembers,allowshrinkingclass_specification 指定 名称将被保留的类成员,如果它们没有被删除的话 在收缩阶段。例如,您可能希望保留名称 处理由编译的库时的合成类 $methods JDK 1.2 或更早版本,因此混淆器可以在处理时再次检测到它 使用已处理库的应用程序(尽管 ProGuard 本身不需要这个)。仅在混淆时适用。

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 1970-01-01
      • 2017-05-02
      • 2016-07-04
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多