换句话说:我应该使用什么-keep
命令告诉Proguard避免混淆代表本机库的类? (因为JNA要求名称与等效的本机函数,struct等匹配)
答案 0 :(得分:4)
这是我现在使用的规则:
-keepclassmembers class * extends com.sun.jna.** {
<fields>;
<methods>;
}
我仍然认为可能有更好的方法来做到这一点。
答案 1 :(得分:1)
对我来说也很好
-keep class com.sun.jna.** { *; }
-keep class * implements com.sun.jna.** { *; }
答案 2 :(得分:0)
默认情况下,JNA使用库接口方法名称来查找本机函数名称。除此之外的任何东西都应该能够抵挡混淆。
如果您的测试包含所有JNA呼叫的覆盖范围,那么您应该能够像在此处提出问题那样快速地进行测试。
修改强>
考虑这个评论,因为我不准备提供“-keep”命令:)
您当然必须避免删除或重新排序任何Structure字段。
答案 3 :(得分:0)
我想我改用这些规则解决了它,因为似乎它们需要对软件包的所有内容进行模糊处理:
-keep class com.sun.jna.** { *; }
-keep class * implements com.sun.jna.** { *; }