换句话说:我-keep
应该使用什么命令来告诉 Proguard 避免混淆代表本机库的类?(因为 JNA 要求名称与等效的本机函数、结构等匹配)
问问题
2825 次
4 回答
5
这是我现在使用的规则:
-keepclassmembers class * extends com.sun.jna.** {
<fields>;
<methods>;
}
我仍然认为可能有更好的方法来做到这一点。
于 2012-05-14T17:58:03.493 回答
2
对我来说也有效
-keep class com.sun.jna.** { *; }
-keep class * implements com.sun.jna.** { *; }
于 2020-10-27T11:03:24.637 回答
1
我想我用这些规则解决了这个问题,因为他们似乎需要对包的所有内容进行去混淆处理:
-keep class com.sun.jna.** { *; }
-keep class * implements com.sun.jna.** { *; }
于 2020-05-10T05:08:33.730 回答
0
JNA 默认使用库接口方法名称来查找本机函数名称。除此之外的任何东西都应该能够承受混淆。
如果您的测试包括所有 JNA 调用的覆盖范围,那么您应该能够几乎与在此处提出问题一样快地进行测试。
编辑
考虑这是一条评论,因为我不准备提供“-keep”命令:)
您当然必须避免消除或重新排序任何结构字段。
于 2012-05-11T20:02:01.240 回答