如何告诉Proguard避免混淆JNA库类?

问题描述 投票:7回答:3

换句话说:我应该使用什么-keep命令告诉Proguard避免混淆代表本地库的类? (因为JNA要求名称与等效的本机函数,结构等相匹配)

java proguard jna
3个回答
4
投票

这是我现在使用的规则:

-keepclassmembers class * extends com.sun.jna.** {
    <fields>;
    <methods>;
}

我仍然认为可能会有更好的方法。


0
投票

JNA默认情况下使用库接口方法名称来查找本机函数名称。除此以外的任何东西都应该能够承受混淆。

如果您的测试包括所有JNA调用的覆盖范围,那么您应该能够几乎像在此提问一样快地对其进行测试。

编辑

考虑此评论,因为我不准备提供“ -keep”命令:)

您当然必须避免消除或重新排列任何Structure字段。


0
投票

我想我改用这些规则解决了它,因为似乎它们需要对软件包的所有内容进行模糊处理:

-keep class com.sun.jna.** { *; }
-keep class * implements com.sun.jna.** { *; }
© www.soinside.com 2019 - 2024. All rights reserved.