使用 Proguard 混淆 ORMLite 模型类

2024-01-03

我想在代码中混淆一些模型。 我知道我可以忽略整个模型包,但我不想这样做。 我尝试了一些混淆器调整并检查了所有相关帖子,但无济于事。 ORMlite 不断抛出java.lang.RuntimeException: Unable to create application ...App: java.lang.IllegalArgumentException: Foreign field class ....f.p does not have id field。我检查了注释是否仍然存在dex2jar https://code.google.com/p/dex2jar/ and jd http://jd.benow.ca/,而且它仍然在那里。

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

攻击性的东西:

-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 是实体类的包。

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Proguard 混淆 ORMLite 模型类 的相关文章

随机推荐

  • Emmet - 带缩写的换行 - 表示换行文本的令牌,即{原始文本}

    我正在尝试尽可能惰性地将 URL 列表转换为 HTML 链接 www annaandsally com au www babylush com au www babysgotstyle com au etc 使用缩写形式的wrapper 我
  • WebWorkers 的执行速度似乎比主线程慢得多

    我一直致力于优化一些长时间运行的 JAvaScript 并尝试实现 WebWorkers 我有一组独立的任务需要计算 在我最初的测试中 有 80 个任务 在主线程上完成需要 250 毫秒 我认为我可以将任务分配给一些网络工作人员 并将时间缩
  • Hibernate 中的枚举

    在 DAO 中拥有一个其值来自 Java 枚举的字段通常很有用 一个典型的示例是登录 DAO 其中通常有一个将用户特征描述为 NORMAL 或 ADMIN 的字段 在 Hibernate 中 我将使用以下 2 个对象以 半 类型安全的方式表
  • C++ 实验/文件系统remove_all

    我想删除 C 17 中包含子文件夹和文件的文件夹 我在用着experimental filesystem namespace filesys std experimental filesystem uintmax t n filesys r
  • 在Android 8.1中访问WallpaperManager

    我正在构建一个启动器 需要访问用户当前的背景壁纸 但每次启动应用程序时都会收到警告W WallpaperManager No permission to access wallpaper suppressing exception to a
  • SaveChanges() 实体框架 4.1 的问题

    我在保存对数据库的更改时遇到问题 我正在控制器中更新模型 A 但是当我使用 SaveChanges 保存更改时 我最终在 B 的数据库中出现了重复的项目 调用 UpdateModel 后 我检查了 Bs 属性 它正如我所预期的那样 但是在调
  • 使用 supertest、express 和 mocha 进行 Grunt 测试 api

    我有一个由express运行的https服务器 我使用mocha和supertest对其进行测试 我的问题是 如果我只运行测试 就可以了 如果我尝试使用 test 运行 gruntfile 然后运行 express 我会看到很多 EADDR
  • 如何让按钮文本在 IE 中顶部对齐?

    我在按钮内有一些文本 我希望该文本在按钮顶部对齐 默认情况下 它似乎与中间对齐 在 webkit 中 我可以使用 webkit box align start 将此文本对齐到顶部这似乎不适用于 IE 例子 http jsfiddle net
  • 如何从具有 EXCEPTION 效果的 PureScript 函数返回值?

    我刚刚开始学习 PureScript 效果 并且一直在尝试创建一个具有 EXCEPTION 效果的函数 lengthGt5 forall eff String gt Eff err EXCEPTION eff String lengthGt
  • kubectl 端口转发是否加密?

    在运行 kubectl port forward 命令时 我找不到任何有关集群 pod 和 locahost 之间的连接创建被加密的信息 看起来它使用的是 socat https linux die net man 1 socat 支持加密
  • 是否有一种可以容忍微小差异的哈希算法?

    我正在做一些网络爬行类型的工作 在网页中查找某些术语并找到它们在页面上的位置 然后将其缓存以供以后使用 我希望能够定期检查页面是否有任何重大更改 像 md5 这样的东西可以通过简单地将当前日期和时间放在页面上来阻止 有没有适用于这样的事情的
  • pytest - Monkeypatch 关键字参数默认值

    我想测试函数的默认行为 我有以下内容 app foo py DEFAULT VALUE hello def bar text DEFAULT VALUE print text test test app py import app def
  • 字符串的 SHA1 是否总是返回 ASCII 字符?

    输入字符串可以是unicode字符串 计算SHA1后输出字符串是否总是返回ASCII字符 这要看情况 但严格来说 不是 SHA 1 哈希的输出为 160 位 即 20 个字节 但不保证这些字节位于 ASCII 范围内 但是 某些哈希函数会输
  • Facebook api in python 和源码掌握吧!

    我对 python 有足够的了解 我想使用 facebook python api 为此我从开发人员网站获得了所有 API 密钥和应用程序秘密等 现在我想要的是一个很好的资源 为我提供如何使用Python IDLE 在win7中 验证和检索
  • 为什么我们应该避免使用修饰符形式的rescue?

    我来定义价值 但这个值可能是hash的key的值 我会用rescue如果该键不存在 则定义值为 nil 例如 foo bar a b c rescue nil 但在实践中告诉我不好的风格 因为我使用了修饰符形式的救援 我将更改逻辑以使用检查
  • 从文件中读取行而不在末尾添加“\n”[重复]

    这个问题在这里已经有答案了 我的文件是 xml txt 包含以下内容 books xml news xml mix xml 如果我使用 readline 函数 它会在所有文件的名称处附加 n 这是一个错误 因为我想打开 xml txt 中包
  • 安装Facebook修改的referrer参数值

    I used Google Play 安装引荐来源网址在我的 android 应用程序中并使用以下参数并生成URL正如所描述的 utm source utm medium utm content utm campaign 我编写了自己的自定
  • 如何高效抽分

    我的程序接收 PCL 点云并使用以下方法一一绘制每个点 glBegin GL POINTS glVertex3f point x point y point z glEnd 它可以工作 但由于点数量较多 程序速度相当慢 有没有更有效的方法来
  • 使用 .htaccess 重定向站点但排除两个以上文件夹

    根据这个answer https stackoverflow com a 3414030 3817111 您可以从重定向中排除单个子文件夹 如下所示 RewriteEngine on RewriteRule uploads http exa
  • 使用 Proguard 混淆 ORMLite 模型类

    我想在代码中混淆一些模型 我知道我可以忽略整个模型包 但我不想这样做 我尝试了一些混淆器调整并检查了所有相关帖子 但无济于事 ORMlite 不断抛出java lang RuntimeException Unable to create a