gpt4 book ai didi

java - Proguard keepclasseswithmembers : members isnt kept?

转载 作者:太空狗 更新时间:2023-10-29 13:33:40 25 4
gpt4 key购买 nike

我必须保留 2 个文件的类和成员:Level 和 Episode。我的 proguard.cfg 文件:

-keepclasseswithmembers class games.levels.Episode {
public java.util.ArrayList<java.lang.String> levelLinks;
public java.util.ArrayList<Level> levels;
public java.util.ArrayList<java.lang.String> skin;
public int id;
}
-keepclasseswithmembers class games.levels.Level {
public int id;
public int episode;
public int numEnemies;
}

还有我的 proguards mapping.txt 文件:

games.levels.Level -> games.levels.Level:
int id -> id
int episode -> episode
int numEnemies -> numEnemies
games.levels.Episode -> games.levels.a:
java.util.ArrayList levelLinks -> a
java.util.ArrayList levels -> b
java.util.ArrayList skin -> c
int id -> d

我就是不明白这里发生了什么。任何人都可以帮我一些线索,为什么 Level 有效,但不适用于 Episode?提前致谢。

最佳答案

你有一个奇怪的 proguard 设置。通常 -keepclasseswithmembers 是为了涵盖所有具有匹配成员的类的范围,而不是通过匹配成员来保留特定类。

我建议使用:
-保持类游戏.levels.Episode
-keep class games.levels.Level

这将使您的类保持完整,而不会试图强制匹配成员和特定的类名。

这里的问题是,由于混淆器配置中定义的成员与 Episode 类的实际成员不匹配,因此 Episode 类不匹配。

关于java - Proguard keepclasseswithmembers : members isnt kept?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12994213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com