Afinal(FinalDb)的jar包混淆出错

本文详细介绍了在使用AFinal jar包时遇到的混淆问题,导致调用FinalDb类相关函数失败的情况,并提供了解决方案,通过调整混淆配置来保留所需类的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Afinal的jar包混淆出错,只使用了FinalDb类,出错原因为作为FinalDb对象参数的类被混淆了,导致FinalDb无法识别,解决办法如下:


为了不混淆Afinal的jar包,在配置文件中写入了下面的语句:

-libraryjars libs/afinal-0.3.32-bin.jar

-dontwarn net.tsz.afinal.** 
-keep class net.tsz.afinal.** { *; } 
-keep public class * extends net.tsz.afinal.**  

-keep public interface net.tsz.afinal.** {*;}


但是混淆后的包再调用FinalDb类的相关函数时出错:net.tsz.afinal.FinalDb.findAllByWhere(Unknown Source)......

这个findAllByWhere函数有一个参数是类类型,因为这个类被混淆了,所以函数无法识别该类(无法识别的原因个人认为是FinalDb在建立数据库,表名等时用到了该类的名称和变量名,而混淆后这些名称会改变,所以导致无法正常读取或写入数据到数据库),解决办法:


-keepclasseswithmembers class [类名].** {

<fields>;

<methods>;

}


将[类名]改为作为findAllByWhere参数的类的类名即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值