gpt4 book ai didi

android - 使用 Proguard 混淆 ORMLite 模型类

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:40 24 4
gpt4 key购买 nike

我有几个模型想在我的代码中进行混淆处理。我知道我可以忽略整个模型包,但我不想那样做。我尝试了一些 proguard 调整并检查了所有相关帖子但无济于事。 ORMlite 不断抛出 java.lang.RuntimeException: Unable to create application ...App: java.lang.IllegalArgumentException: Foreign field class ....f.p does not have id field。我检查了注释是否仍然存在 dex2jarjd , 它仍然存在。

我有这个 proguard 配置(还有很多混淆其他部分的配置):

攻击性的东西:

-mergeinterfacesaggressively
-allowaccessmodification
-optimizationpasses 5

-verbose
-dontskipnonpubliclibraryclasses
-dontpreverify
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

保存各种框架需要的信息:

-keepattributes *Annotation*
-keepattributes Signature
-keepattributes EnclosingMethod

ORMLITE 相关:

-keep class com.j256.**
-keepclassmembers class com.j256.** { *; }
-keep enum com.j256.**
-keepclassmembers enum com.j256.** { *; }
-keep interface com.j256.**
-keepclassmembers interface com.j256.** { *; }

我是不是遗漏了什么或者这是不可能的?

最佳答案

由于 ORMLite 使用反射来保存或保留您的数据,他们需要未混淆的实体名称(即您用来保存或保留数据的类)。

抛出此异常是因为 ORMLite 正在尝试为其表查找实体类,但无法找到具有相似名称的类和成员。

只需忽略您的实体类,以免使用以下代码进行混淆:

-keep class com.xyz.components.**
-keepclassmembers class com.xyz.components.** { *; }

其中 com.xyz.components 是实体类的包。

希望对您有所帮助!

关于android - 使用 Proguard 混淆 ORMLite 模型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19753051/

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