proguard混淆会影响我的json数据吗?

问题描述 投票:0回答:1

我有一个类被序列化以获得:

class test{
    string test1;
    string test2;
    string test3;
    string test4;
}

输出:

{
    "a": "...",
    "b": "...",
    "c": "...",
    "d": "..."
}

我只需要将这些数据存储在本地。

我需要在 proguard 中配置“-keep”选项吗?

我一直在研究,但仍然不清楚 proguard 是如何工作的,这些变量名称是随机的吗?

android json proguard
1个回答
0
投票

如果这确实是你的模型类的定义,那么 proguard 会 100% 混淆它,你确实会在反序列化方面遇到麻烦。

尽管如此,深入了解 proguard

-keep
并不是你唯一的选择。

我建议你简单地创建你的模型类

public
,并且 proguard 应该一开始就不要管它:

public class test{
    string test1;
    string test2;
    string test3;
    string test4;
}

我认为公开你的课程应该足以帮助你度过最初的难关。但是,如果这不起作用,那么我建议您在类的顶部添加一个

@Keep
注释,以便让 proguard 知道 not 来混淆此类:

@Keep
class test{
    string test1;
    string test2;
    string test3;
    string test4;
}

请注意,有了

@Keep
注释,您就不再需要
public
修饰符了。不过,我坚持认为,仅使用
public
修饰符就可以解决问题!

否则,如果您更喜欢深入了解

-keep
,那么我建议您首先阅读此页此页,以便更好地熟悉 progaurd 及其规则系统。

然后,考虑将如下规则添加到您的

proguard-rules.pro
中,或者任何实际文件的名称:

# In proguard-rules.pro
#
# add either
-keep class path.to.models.** { *; }
# or
-keep class path.to.your.particular.class.test { *; }
© www.soinside.com 2019 - 2024. All rights reserved.